22.vue构建项目时,data中的数据一定要采用函数式包裹,其最核心的目的是保证每个组件上的数据都是独立的。
为啥这样说:这样说其实跟js的数据存储是有关系的,函数执行时会创建独立的作用域空间(就是变量的有效范围),如果不用函数包裹的话,每个组件的data 都是内存的同一个地址,一个数据改变了,其他也改变了,这样完全不符合我们的代码预期.
那为啥最后选中了函数的大括号而不是其他大括号呢?>>> 原因是javaScript本身是一门弱类型的语言,一般只有函数的大括号内会被当作块级作用域,没有其它的严格块级作用域,比如if(){我不构成作用域},对象object{我不构成作用域}(有的同学可能会说ES6中的Class字段创建的数据不就是块级作用域么,其实不然,因为es6增加的class字段只是一个javascript语法糖,并非严格的js作用域)。
因由如斯,且看且学。