你不知道的Vue.js

395 阅读1分钟

数据监听

不会被监听到的变化

Vue3之前,对于数据变化的监听是通过Object.defineProperty方法实现的,因此数据对象中的新增属性,一些数组操作,数组的length属性都无法被Vue监听到。

可以被监听的变化

尤大大对如下数组方法进行了重写,因此Vue可以监听到通过这些方法引起的数据变化。

  • push
  • pop
  • shift
  • unshift
  • splice
  • sort
  • reverse

使用Vue.set方法添加对象属性也可以被Vue监听到。

指令

基本指令注意事项

  • v-text填充整个innerHTML
  • v-once只会渲染一次
  • v-pre这个元素和它的子元素会被忽略
  • v-show控制元素的display属性、v-if控制元素的创建与销毁

指令修饰符

.lazy .number .trim

自定义指令

  • 全局指令
Vue.directive('指令名称', {指令配置});
  • 局部指令

与data、methods平级添加如下代码

directives: {
    指令名称:{
        指令配置
    }
}
  • 指令配置

自定义指令的配置是一个实现了下数这些回调函数的对象。

{
    bind: function (el, binding,vnode,oldVnode) {}
    inserted: function (el, binding,vnode,oldVnode) {}
    update: function (el, binding,vnode,oldVnode) {}
    componentUpdated: function (el, binding,vnode,oldVnode) {}
    unbind: function (el, binding,vnode,oldVnode) {}
}

可以用自定义指令实现对拖拽、加载图片等代码的复用。

(文章会不定期更新,本人也希望志同道合的朋友加入)