1. 首页
  2. 编程面试题
  3. 前端
  4. Vue

Vuex 如何区分 state 是外部直接修改,还是通过 mutation 方法修改的?



Vuex 中修改 state 的唯一渠道就是执行 commit('xx', payload) 方法,其底层通过执行 this._withCommit(fn) 设置_committing 标志变量为 true,然后才能修改 state,修改完毕还需要还原_committing 变量。外部修改虽然能够直接修改 state,但是并没有修改_committing 标志位,所以只要 watch 一下 state,state change 时判断是否_committing 值为 true,即可判断修改的合法性。

发布者:admin,如若转载,请注明出处:https://ai1024.vip/28218.html

QR code
//