关于Vue的那点事儿之④

385 阅读1分钟

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) {

//这里监听

}