你绝对不知道的 Vue 技巧 - 三

    技术2026-06-12  9

    什么是指令?指令就是你女朋友指着你说,“那边搓衣板,跪下,这是命令!”。开玩笑啦,程序员哪里会有女朋友。通过上一节我们开发了一个loading组件,开发完之后,其他开发在使用的时候又提出来了两个需求

    可以将loading挂载到某一个元素上面,现在只能是全屏使用可以使用指令在指定的元素上面挂载loading 有需求,咱就做,没话说

    开发v-loading指令

    import Vue from 'vue' import LoadingComponent from './loading' // 使用 Vue.extend构造组件子类 const LoadingContructor = Vue.extend(LoadingComponent) // 定义一个名为loading的指令 Vue.directive('loading', {   /**    * 只调用一次,在指令第一次绑定到元素时调用,可以在这里做一些初始化的设置    * @param {*} el 指令要绑定的元素    * @param {*} binding 指令传入的信息,包括 {name:'指令名称', value: '指令绑定的值',arg: '指令参数 v-bind:text 对应 text'}    */   bind(el, binding) {     const instance = new LoadingContructor({       el: document.createElement('div'),       data: {}     })     el.appendChild(instance.$el)     el.instance = i
    Processed: 0.019, SQL: 10