关于模块导出的 data 和 store 的两个问题

来源:3-5 vuex介绍

0xCalorie

2019-05-19 18:02

  1. 请问这两种 data 的使用区别是什么?第一个代码块会导致运行不符合预期

data: {    
  message: store.state.count 
}
data () {    
    return {      
        message: store.state.count    
    }  
}

2. 这里的 store 是干啥用的?去除掉 store 后功能也是正常的

name: 'About',
store,
data () {  
    return {    
        message: store.state.count  
    }
}

谢谢 ?

写回答 关注

1回答

  • Brian
    2019-05-20 07:47:36
    已采纳

     1. 第一个问题,参考:data 必须是一个函数

    第一个写法只能在ES5环境中去使用,在CLI创建的工程项目中,会编译异常。

    最主要的原因:是data的作用域的问题。举例说明:如果是有多个Vue实例,那么data按照对象的方式去定义,都是同一个作用域,导致data相互覆盖,不唯一。而变成函数之后,就只能在本Vue实例里面可以进行访问了。

    2. 第二个问题。

    如果在全局的App.vue的main.js中引入了store,那么store是可以全局使用的。

    或者按照上面的写法,你可以在单独的组件中引用store,变成局部引用。即局部与全局的引用区别!!

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

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

82579 学习 · 489 问题

查看课程

相似问题