Vue组件data必须是函数的原因
- 每个组件都是 Vue 的实例
- 组件共享 data 属性,当 data 的值是同一个引用类型的值时,改变其中一个会影响其他
- 组件中的 data 写成一个函数,数据以函数返回值形式定义,这样每复用一次组件,就会返回一份新的 data,类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据。而单纯的写成对象形式,就使得所有组件实例共用了一份 data,就会造成一个变了全都会变的结果
Vue的组件命名规范
给组件命名有两种方式,一种是使用链式命名 my-component,一种是使用大驼峰命名 MyComponent 在字符串模板中
<my-component></my-component>
和
<MyComponent></MyComponent>
都可以使用,
在非字符串模板中最好使用<MyComponent></MyComponent>
因为要遵循 W3C 规范中的自定义组件名 (字母全小写且必须包含一个连字符),避免和当前以及未来的 HTML 元素相冲突
在组件中监听路由参数变化的方式
有两种方法可以监听路由参数的变化,但是只能用在包含<router-view />的组件内
第一种
watch: {
'$route'(to, from) {
// 在此处监听
},
}
第二种
beforeRouteUpdate (to, from, next) {
//这里监听
}