为了账号安全,请及时绑定邮箱和手机立即绑定

vuex 的mutations问题

之前讲的不是用  在mutations中  this.state.xxx吗;


为什么到这里变成了

addItem(state,value){

state.list.push(value)

}


另外我直接用

addItem(value){

this.state.list.push(value)

}

methods:{

add(){

store.commit('addItem',{

title:this.title,

content:this.content

})

}

},数组变成保存自己了??


正在回答

2 回答

@将自己发配于人海 之前在vuex那一章中,使用this.state.count++是因为本身在mutations中,本身没有传入payload参数,可以使用this代表着本Store对象,去改变state的值。


另外一个问题,关于载荷传参的问题。

同学你所说的这个问题,我们要来读一下源码:

在源码的vuex/src/store.js中,417行:

function registerMutation (store, type, handler, local) {
  const entry = store._mutations[type] || (store._mutations[type] = [])
  entry.push(function wrappedMutationHandler (payload) {
    handler.call(store, local.state, payload)
  })
}

默认需要传入2个参数,state与payload。

https://img1.sycdn.imooc.com//5c45516e0001ceab19941288.jpg

参考资料:

call方法

提交载荷(Payload)

0 回复 有任何疑惑可以回复我~
#1

慕仔0302455

那为什么这章节中使用this.state会有问题呢
2020-10-29 回复 有任何疑惑可以回复我~

一定要有完整的案例,不然人家不知道你要表达什么意思,类似这样https://jsfiddle.net/chrisvfritz/50wL7mdz/

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

vuex 的mutations问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信