您的位置:首頁技術文章
文章詳情頁

javascript - vue中更改state的值

瀏覽:87日期:2023-03-15 15:03:42

問題描述

我知道 actions 是處理異步的 我沒有異步操作 我的意思是 點擊一個按鈕之后 在methods 中直接更改state中的值 ,不通過actions 也不通過mutation 這樣符合vue的規范嗎

javascript - vue中更改state的值

問題解答

回答1:

關于為什么不能直接調用mutation方法或者直接修改state屬性,而是必須得通過commit來提交mutation呢?引用官方文檔:

再次強調,我們通過提交 mutation 的方式,而非直接改變 store.state.count,是因為我們想要更明確地追蹤到狀態的變化。這個簡單的約定能夠讓你的意圖更加明顯,這樣你在閱讀代碼的時候能更容易地解讀應用內部的狀態改變。此外,這樣也讓我們有機會去實現一些能記錄每次狀態改變,保存狀態快照的調試工具。有了它,我們甚至可以實現如時間穿梭般的調試體驗。由于 store 中的狀態是響應式的,在組件中調用 store 中的狀態簡單到僅需要在計算屬性中返回即可。觸發變化也僅僅是在組件的 methods 中提交 mutations。

可以看出來實際上是設計vuex的時候為了追蹤state的變化,約定一定要用commit去提交mutation觸發數據的變化的。你可以試一下官方的vue調試插件,叫Vue Devtools,可以直接看到組件,data,vuex等,也可以追蹤變化什么的,試一下估計你就知道為什么要這么做了。

標簽: JavaScript
相關文章:
国产综合久久一区二区三区