84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我知道 actions 是處理異步的 我沒有非同步操作 我的意思是 點擊一個按鈕之後 在methods 中直接更改state中的值 ,不通過actions 也不通過mutation 這樣符合vue的規範嗎
业精于勤,荒于嬉;行成于思,毁于随。
關於為什麼不能直接呼叫mutation方法或直接修改state屬性,而是必須透過commit來提交mutation呢?引用官方文件:
再次強調,我們透過提交 mutation 的方式,而非直接改變 store.state.count,是因為我們想要更明確地追蹤到狀態的變化。這個簡單的約定能夠讓你的意圖更加明顯,這樣你在閱讀程式碼的時候能更容易解讀應用程式內部的狀態改變。此外,這也讓我們有機會實現一些能記錄每次狀態改變,並保存狀態快照的偵錯工具。有了它,我們甚至可以實現如時間穿梭般的調試體驗。由於 store 中的狀態是響應式的,在元件中呼叫 store 中的狀態簡單到僅需要在計算屬性中傳回即可。觸發變化也只是在組件的 methods 中提交 mutations。
可以看出來其實是設計vuex的時候為了追蹤state的變化,約定一定要用commit去提交mutation觸發資料的變化的。你可以試試官方的vue調試插件,叫Vue Devtools,可以直接看到組件,data,vuex等,也可以追蹤變化什麼的,試一下估計你就知道為什麼要這麼做了。
關於為什麼不能直接呼叫mutation方法或直接修改state屬性,而是必須透過commit來提交mutation呢?引用官方文件:
可以看出來其實是設計vuex的時候為了追蹤state的變化,約定一定要用commit去提交mutation觸發資料的變化的。你可以試試官方的vue調試插件,叫Vue Devtools,可以直接看到組件,data,vuex等,也可以追蹤變化什麼的,試一下估計你就知道為什麼要這麼做了。