當我們使用vuex的時候,時不時能看到“更改Vuex中的store中的狀態唯一辦法就是提交mutations”,但是有沒有試想過,我們不提交mutations其實也能修改state的值?答案是可以的 我們可以直接使用如下方式; this.$store.state.num=666; 其中,這樣修改的話 ...
當我們使用vuex的時候,時不時能看到“更改Vuex中的store中的狀態唯一辦法就是提交mutations”,但是有沒有試想過,我們不提交mutations其實也能修改state的值?答案是可以的
我們可以直接使用如下方式;
this.$store.state.num=666;
其中,這樣修改的話,store中的state數據可以改變且是響應式,瀏覽器控制台並無報錯信息輸出,但是不建議這樣做,原因如下:
官方文檔中也有描述,如下:
開啟嚴格模式,僅需在創建 store 的時候傳入 strict: true; 在嚴格模式下,無論何時發生了狀態變更且不是由 mutation 函數引起的,將會拋出錯誤。這能保證所有的狀態變更都能被調試工具跟蹤到。
所以,綜上,我們能夠得出結論,
使用commit提交狀態修改是為了配合開發者工具使用,使得狀態更好的被最終,保存狀態快照,實現時間漫游/回滾之類的操作。
然後前端面試中面試官也有可能會問到相關問題?=》請問可以直接修改vuex中的state的數據嗎?這個時候小伙伴們就應該知道怎麼回答了。