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

为什么addItem的参数需要state呢?

之前的课程里用Vuex的时候,不都是用this.state来获取的吗,这里为什么要把state作为参数传到mutation的函数里呢?

我试了去掉state,用this.state.lists.push(value),倒是不报错,就是List组件那边获取不到数据。何故?


另外,点击登录跳转到home页面,是不是所有类似这种链接跳转在Vue项目都是这么写:

@click="fun()"---fun() {this.$router.push("target")}


正在回答

1 回答

mutation这个函数就有2个形参,可以看一下vuex的官方的源代码。

使用this.state是一种偷懒的作法,看一下官方的例子:

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    increment (context) {
      context.commit('increment')
    }
  }})

如果要纠结,mutation方法中为什么要传state,可以去看看vuex的源码,是有2个形参的。

使用this.state是我演示中一个偷懒的搞法,跟this的作用域有关系。

不推荐直接在click方法中使用函数体这种写法,不美观,也不方便阅读,可以参考下官方的代码规范:https://cn.vuejs.org/v2/style-guide/index.html

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

绝尘kinoko 提问者

谢谢老师!懂了。
2019-05-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么addItem的参数需要state呢?

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