文章詳情頁
javascript - vue中更改state的值
瀏覽:195日期: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. javascript - sublime快鍵鍵問題2. javascript - 移動端上不能實現拖拽布局嗎?3. 實現bing搜索工具urlAPI提交4. javascript - 如何判斷不同兩個對象觸發同一事件?5. ubuntu - apache安裝好后php文件放在哪里?6. javascript - react native在run-android時出現這個錯誤該怎么解決?大神賜教7. angular.js - 單頁應用(ng/vue)該如何監聽用戶離開當前頁面(或者路由)?8. c++ - QWebEngineView加載url后直接點擊鏈接沒有反應要怎么解決?9. 前端 - 這段代碼一直生效不了,查半天因為 top: 0px; 分號后一個隱藏的東西,也不是占位符...刪了就可以生效,這是什么情況。。10. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙
排行榜

網公網安備