data为什么要用函数式不能用对象式
函数式赋值的时候,是给了一个新的对象,如果改变新的对象的值,原来的值不变,原因是函数式会创建一个新的作用域,数据独立互不干扰。如果是对象式,新的对象值改变了旧的对象值也会一起发生改变。
几个注意点:
-
关于组件名:
一个单词组成:
第一种写法(首字母小写): school
第二种写法(首字母大写): School多个单词组成
第一种写法(kebab-case命名): my-school
第二种写法(CamelCase命名): Myschool (需要Vue脚手架支持)备注
(1)组件名尽可能回避HTML中已有的元素名称,例如:(h2H2都不行。
(2)可以使用name配置项指定组件在开发者工具中呈现的名字。 -
关于组件标签:
第一种写法:<schoolx/school>
第二种写法:<school/>
备注:不用使用脚手架时, 会导致后续组件不能渲染。
-
一个简写方式:
const school = Vue.extend(options)
可简写为:const school = options
关于VueComponent:
-
school组件本质是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的。
-
我们只需要写或, Vue解析时会帮我们创建school组件的实例对象,即Vue 我们行的: new VueComponent(options)。
-
特别注意:每次调用vue.extend,返回的都是一个全新的vueComponent! ! ! !
-
关于this指向:
(1)组件配置中:data函数、methods中的函数、 watch中的函数、computed中的函数它们的this均是【VueComponent实例对象】
(2).new Vue(options)配置中:data函数、methods中的函数、watch中的函数、computed中的函数它们的this均是【Vue实例对象】 -
VueComponent的实例对象,以后简称vc (也可称之为:组件实例对象)Vue的实例对象,以后简称vm。