当前位置:首页 > VUE

vue 指令实现

2026-02-09 23:27:53VUE

Vue 指令实现

Vue 指令是带有 v- 前缀的特殊特性,用于在 DOM 元素上应用响应式行为。Vue 提供了一些内置指令(如 v-modelv-if),同时也支持自定义指令的注册。

内置指令示例

v-bind 动态绑定属性:

<div v-bind:class="{ active: isActive }"></div>

v-model 实现双向数据绑定:

<input v-model="message" placeholder="edit me">

v-for 渲染列表:

<li v-for="item in items" :key="item.id">{{ item.text }}</li>

自定义指令实现

注册全局自定义指令:

Vue.directive('focus', {
  inserted: function (el) {
    el.focus();
  }
});

注册局部指令(组件内):

vue 指令实现

directives: {
  focus: {
    inserted: function (el) {
      el.focus();
    }
  }
}

使用自定义指令:

<input v-focus>

指令钩子函数

自定义指令提供以下钩子(均为可选):

  • bind:指令第一次绑定到元素时调用
  • inserted:被绑定元素插入父节点时调用
  • update:所在组件 VNode 更新时调用
  • componentUpdated:所在组件及子组件 VNode 全部更新后调用
  • unbind:指令与元素解绑时调用

动态指令参数

指令参数可以是动态的:

<a v-bind:[attributeName]="url"> ... </a>

attributeName 值为 href 时,等价于:

vue 指令实现

<a v-bind:href="url"> ... </a>

指令修饰符

修饰符是以点开头的特殊后缀:

<form v-on:submit.prevent="onSubmit">...</form>

.prevent 修饰符会调用 event.preventDefault()

函数简写

当需要在 bindupdate 时触发相同行为时:

Vue.directive('color', function (el, binding) {
  el.style.color = binding.value;
});

对象字面量

指令可以接收任何合法的 JavaScript 表达式:

<div v-demo="{ color: 'white', text: 'hello' }"></div>
Vue.directive('demo', function (el, binding) {
  console.log(binding.value.color); // => "white"
  console.log(binding.value.text);  // => "hello"
});

标签: 指令vue
分享给朋友:

相关文章

vue element实现

vue element实现

Vue Element UI 实现 Vue Element UI 是基于 Vue.js 的组件库,提供丰富的 UI 组件,适合快速开发企业级中后台产品。以下是一些关键实现方法和步骤: 安装 Vue…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 doc…

vue实现 单选

vue实现 单选

实现 Vue 单选功能 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 可以轻松实现单选功能,将单选按钮的值绑定到同…

vue nexttrick实现

vue nexttrick实现

Vue 中 nextTick 的实现原理 nextTick 是 Vue 提供的一个异步方法,用于在下次 DOM 更新循环结束之后执行延迟回调。它利用了 JavaScript 的事件循环机制,确保回调在…

vue实现导航

vue实现导航

使用 Vue Router 实现导航 Vue Router 是 Vue.js 官方提供的路由管理器,用于构建单页应用(SPA)的导航系统。以下是实现导航的基本步骤。 安装 Vue Router n…

vue实现tip

vue实现tip

Vue实现Tooltip的方法 使用Vue实现Tooltip可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML的title属性 在Vue模板中直接使用HTML的title属性是最简单的实…