vuex中能直接修改state嗎
vuex中能直接修改state嗎
當我們使用vuex的時候,時不時能看到“更改Vuex中的store中的狀態(tài)唯一辦法就是提交mutations”,但是有沒有試想過,我們不提交mutations其實也能修改state的值?答案是可以的
我們可以直接使用如下方式;
this.$store.state.num=666;
其中,這樣修改的話,store中的state數(shù)據(jù)可以改變且是響應式,瀏覽器控制臺并無報錯信息輸出,但是不建議這樣做,原因如下:
官方文檔中也有描述,如下:
開啟嚴格模式,僅需在創(chuàng)建 store 的時候傳入 strict: true; 在嚴格模式下,無論何時發(fā)生了狀態(tài)變更且不是由 mutation 函數(shù)引起的,將會拋出錯誤。這能保證所有的狀態(tài)變更都能被調試工具跟蹤到。
所以,綜上,我們能夠得出結論,
使用commit提交狀態(tài)修改是為了配合開發(fā)者工具使用,使得狀態(tài)更好的被最終,保存狀態(tài)快照,實現(xiàn)時間漫游/回滾之類的操作。
然后前端面試中面試官也有可能會問到相關問題?=》請問可以直接修改vuex中的state的數(shù)據(jù)嗎?這個時候小伙伴們就應該知道怎么回答了。
在vuex中,不經過mutations能直接修改state中的數(shù)據(jù)嗎?為什么
不經過mutations不能直接修改state中的數(shù)據(jù),因為state是實時更新的,如果直接修改state中的數(shù)據(jù)是異步操作,當state異步還沒有執(zhí)行完,state的數(shù)據(jù)就有可能發(fā)生變化,會導致程序出問題,所以必須通過mutations限制state不允許異步操作。
在vue中使用vuex,修改state的值
1、 安裝 vuex
npm install vuex -S
2、在目錄下創(chuàng)建store文件

3、 在store.js編輯一個修改state的方法

然后在mian.js中全局引入

最后在組件中使用

這個的功能是運用mutations
修改state中的值
到此這篇關于vuex中能直接修改state嗎?的文章就介紹到這了,更多相關vuex修改state內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Element的穿梭框數(shù)據(jù)量大時點擊全選卡頓的解決方案
本文主要介紹了Element的穿梭框數(shù)據(jù)量大時點擊全選卡頓的解決方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
element table跨分頁多選及回顯的實現(xiàn)示例
本文主要介紹了element table跨分頁多選及回顯的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
Vue+Router+Element實現(xiàn)簡易導航欄
這篇文章主要為大家詳細介紹了Vue+Router+Element實現(xiàn)簡易導航欄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09

