文章詳情頁
javascript - vue中更改state的值
瀏覽:192日期:2023-03-15 15:03:42
問題描述
我知道 actions 是處理異步的 我沒有異步操作 我的意思是 點擊一個按鈕之后 在methods 中直接更改state中的值 ,不通過actions 也不通過mutation 這樣符合vue的規范嗎

問題解答
回答1:關于為什么不能直接調用mutation方法或者直接修改state屬性,而是必須得通過commit來提交mutation呢?引用官方文檔:
再次強調,我們通過提交 mutation 的方式,而非直接改變 store.state.count,是因為我們想要更明確地追蹤到狀態的變化。這個簡單的約定能夠讓你的意圖更加明顯,這樣你在閱讀代碼的時候能更容易地解讀應用內部的狀態改變。此外,這樣也讓我們有機會去實現一些能記錄每次狀態改變,保存狀態快照的調試工具。有了它,我們甚至可以實現如時間穿梭般的調試體驗。由于 store 中的狀態是響應式的,在組件中調用 store 中的狀態簡單到僅需要在計算屬性中返回即可。觸發變化也僅僅是在組件的 methods 中提交 mutations。
可以看出來實際上是設計vuex的時候為了追蹤state的變化,約定一定要用commit去提交mutation觸發數據的變化的。你可以試一下官方的vue調試插件,叫Vue Devtools,可以直接看到組件,data,vuex等,也可以追蹤變化什么的,試一下估計你就知道為什么要這么做了。
標簽:
JavaScript
相關文章:
1. docker鏡像push報錯2. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””3. html5 - datatables 加載不出來數據。4. node.js - mongodb查找子對象的名稱為某個值的對象的方法5. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????6. 運行python程序時出現“應用程序發生異常”的內存錯誤?7. html5和Flash對抗是什么情況?8. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]9. 前端 - @media query 使用出現的問題?10. javascript - QQ第三方登錄的問題
排行榜

網公網安備