Vue小记

197 阅读1分钟

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:跳过当前元素和他的子元素的编译过程,添加给原始标签,加快编译速度

5.