亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

【vue】為什么要使用vuex而不是window.obj來維護全局的實例屬性和方法呢

【vue】為什么要使用vuex而不是window.obj來維護全局的實例屬性和方法呢

陪伴而非守候 2018-09-08 16:13:06
【vue】為什么要使用vuex而不是window.obj來維護全局的實例屬性和方法呢?
查看完整描述

2 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

vuex除了提供全局變量,它還能:

  • 抽象業務邏輯,減少重復代碼;比如異步獲取的數據,不需要每個地方都寫請求接口的代碼,只需要store.dispatch('actionName')

  • 統一數據來源;一個數據可能來自:1.服務端 2.web socket的推送 3.響應用戶操作之后對數據執行的運算符操作;沒有使用vuex,你要在不同的地方寫這三種其一的獲取/修改數據的代碼,而使用vuex只需要一句store.dispatch('actionName')

要不要使用vuex,答案很明顯??!


查看完整回答
反對 回復 2018-09-28
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

那你為什么不用原生js開發 用vue呢?
下面就拿window.obj用開發舉例

window.obj = {  
    count: 1,    
    todos: [
      { id: 1, text: '...', done: true },
      { id: 2, text: '...', done: false }
    ]}

如果要修改狀態

//a組件
window.obj.count+=1;
//b組件
window.obj.count+=5;
//
c組件window.obj.count=10;

上面的方法肯定不行,在復雜的程序中 要封裝成方法來修改
然后就有了registerdispatch
為了 devtools 便于追蹤調試 vuex 做了自己的封裝 Mutation commit 使得狀態必須同步提交 在js中肯定會有異步 所以有了 Action dispatch用來異步操作

像上面的你會發現做著做著就封裝成立vuex或者類似的狀態管理


查看完整回答
反對 回復 2018-09-28
  • 2 回答
  • 0 關注
  • 2323 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號