directives指令理解
初步认识directives
- 几个钩子
- binding(初始化指令设置,包括参数等,所以也只会调用一次)
- insert(被绑定元素插入父元素时调用,仅保证父节点存在,但不一定插入了document文档中)
- update(vnode更新时调用,即指令的参数或状态发生变化时候)
- componentUpdated(指令所在的组件状态发生变化且完成后会被调用)
- unbind(指令和元素解绑时,即元素被移除时。包括组件的销毁)
- 四个参数,el(被绑元素),binding(指令各种,包括动态参数),vnode(新虚拟节点),oldVnode(旧虚拟节点)
- 总结顺序,在组件挂在之前挂载creted-->binding-->insert-->mounted
- 缺点:
- 1,页面执行顺序便知,无法直接拿到渲染后的dom元素;使用方法一般也就是setTimeout,Vue.nextTick等异步手段。其实有点像patch的方式。
省略钩子的写法
- 只写参数directiveName(el,binding,vnode,oldVnode),默认是2个钩子(加载insert和更新时update)