Vue组件data为什么必须是函数?
组件会被复用,如果data是对象,每一个复用的组件实例的data都指向同一个引用地址,修改一个组件实例的data,其他所有组件实例的data都会改变,如果data是函数,每次都会返回一块新的内存,每一个组件实例的data彼此独立,互不影响。
怎么在组件中监听路由参数的变化?
1.
watch:{
'$route'(to,from){
//to下面有query等参数
}
}
//如果组件已经创建(只会执行一次的created已经执行,$route在created阶段赋值)且没有销毁,再次跳转该组件路由,传递参数变化不会被组件监听并赋值给$route
2.
//路由钩子函数,当复用组件且参数变化的时候执行
beforeRouteUpdate(to,from,next){
//to下面有query等参数
}
3. Vue常用的事件修饰符有哪些?
.stop: 阻止事件冒泡;
.self: 当事件发生在该元素本身而不是子元素的时候会触发;
.capture: 优先触发.capture修饰的事件,当有多个.capture修饰的事件时候,按照捕获流顺序触发.capture事件,等所有.capture修饰的事件触发完毕再触发其他事件
.prevent: 阻止默认行为
4.vue常用指令?
基础的v-model/v-for/v-if...还有:
v-once:只会渲染一次,用于性能优化
v-pre:跳过当前元素和他的子元素的编译过程,添加给原始标签,加快编译速度