Vue——Observer的用處

在 state.js 的 initData() 函數中,使用的是 observe() 方法來爲數據對象綁定一個Observer對象,Observer對象執行 defineReactive() 方法爲數據對象設置 setter 和 getter。
而在 initProps() 函數中,通過遍歷 props 選項直接對數據執行了 defineReactive() 方法來設置 setter 和 getter。

Observer類主要做的事情就是對數據進行雙向綁定,通過Object.defineProperty來做數據劫持,然後會實例化一個Dep類。

PS:我們在開發中,可以用observer代替模塊裏的狀態管理

store.js

import Vue from 'vue';

export const state = Vue.observable({
  name:'',
  password:''  
});

export const mutations = {
  setName: setName => (state.name = setName),
  setPassword: setPassword=>(state.password=setPassword)
};

應用:

import {state , mutations} from './store';

mutations.setName('張三');

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章