vue项目中,三种声明变量的区别?

  1. data里,return外
  2. data的return里
  3. export default{}之外

img

1.不使用return包裹的数据会在项目的全局可见,会造成变量污染
2. 使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件,响应式。
3.全部变量,不会收到双向绑定的改变。

data里,return外:那就只能在data里使用相data相当于一个函数

data的return里:那就是挂载到this.data里了,用this.data.变量就可以访问
export default{}之外:这个相当于声明了一个全局变量,都可以使用

变量声明 子级作用域可以拿到,父级拿不到 看 {}括号就行

  1. data里面,return 之外: 这个很好说,就是data函数里面的一个局部变量,旨在data函数内部可用。
  2. data return里面:这里的数据最终会被映射到组件实例身上,作为组件的响应式数据暴露出去,任何能访问到组件实例的地方都可以访问到。
  3. export default {} 之外的定义: 这个相当一一个全局变量,但是又由于es6模块作用域隔离的原因:没有export 出去的数据只在本文件可访问,因此这里的数据只在当前文件内部可访问。并且一般情况下他不是响应式的。另外,由于template中的插值计算回去组件实例上查找数据,因此,这里定义的数据也没法直接在template中去使用