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

来源:4-4 单页面应用 Demo2(1)

绝尘kinoko

2019-05-30 10:59

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

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


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

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


写回答 关注

1回答

  • Brian
    2019-05-30 23:07:39
    已采纳

    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

    绝尘kino...

    谢谢老师!懂了。

    2019-05-31 09:08:37

    共 1 条回复 >

3小时速成 Vue2.x 核心技术

带你快速学习最流行的前端框架vue2.x的核心技术

82578 学习 · 489 问题

查看课程

相似问题