当前位置:首页 > VUE

vue指令实现

2026-03-07 13:53:39VUE

在Vue中,指令(Directives)是带有v-前缀的特殊属性,用于在DOM元素上应用响应式行为。以下是常见的Vue指令实现方法及示例:

v-bind

用于动态绑定属性或组件prop到表达式。

<img v-bind:src="imageUrl" alt="动态图片">
<!-- 简写 -->
<img :src="imageUrl" alt="动态图片">

通过:简写可绑定任意属性,如:class:style等。

v-model

实现表单输入与应用状态的双向绑定。

<input v-model="message" placeholder="输入内容">
<p>{{ message }}</p>

支持修饰符如.lazy(触发change事件更新)、.number(自动转为数字类型)。

v-for

基于源数据渲染列表。

<ul>
  <li v-for="(item, index) in items" :key="item.id">
    {{ index }} - {{ item.text }}
  </li>
</ul>

必须为每项提供唯一:key以提高渲染性能。

v-if / v-else / v-else-if

条件渲染元素。

<div v-if="score >= 90">优秀</div>
<div v-else-if="score >= 60">及格</div>
<div v-else>不及格</div>

v-if是惰性的,条件为假时元素会被销毁;v-show则始终渲染仅切换CSS显示状态。

v-on

监听DOM事件并执行方法。

<button v-on:click="handleClick">点击</button>
<!-- 简写 -->
<button @click="handleClick">点击</button>

支持事件修饰符如.stop(阻止冒泡)、.prevent(阻止默认行为)。

v-text / v-html

更新元素内容。

<span v-text="rawText"></span>
<div v-html="rawHtml"></div>

v-html会解析HTML字符串,需注意XSS风险。

v-pre / v-cloak

特殊用途指令。

<!-- 跳过编译 -->
<div v-pre>{{ 这里不编译 }}</div>

<!-- 避免未编译模板闪现 -->
<div v-cloak>{{ message }}</div>

v-cloak需配合CSS使用:[v-cloak] { display: none }

自定义指令

通过Vue.directive()注册全局指令:

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

使用方式:

vue指令实现

<input v-focus>

钩子函数包括bindinsertedupdate等,可接收elbinding等参数。

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

相关文章

vue实现视窗

vue实现视窗

Vue 实现视窗功能 在 Vue 中实现视窗功能通常涉及监听浏览器窗口大小变化、响应式布局或创建自定义弹窗组件。以下是几种常见实现方式: 监听浏览器窗口大小变化 使用 Vue 的 mounted 和…

vue 实现弹窗

vue 实现弹窗

Vue 实现弹窗的方法 在 Vue 中实现弹窗功能可以通过多种方式完成,以下是几种常见的方法: 使用组件和 v-if/v-show 控制显示 创建一个独立的弹窗组件,通过 v-if 或 v-show…

vue 实现上传

vue 实现上传

Vue 实现文件上传 使用 Vue 实现文件上传可以通过原生 HTML 的 <input type="file"> 或第三方库(如 axios、vue-upload-component)完…

vue 实现vshow

vue 实现vshow

Vue 实现 v-show 在 Vue 中,v-show 是一个常用的指令,用于根据条件控制元素的显示或隐藏。与 v-if 不同,v-show 不会移除 DOM 元素,而是通过 CSS 的 displ…

vue 实现templateurl

vue 实现templateurl

在 Vue 中,templateUrl 是 Angular 中的一个概念,用于指定外部 HTML 文件作为模板。Vue 本身不直接支持 templateUrl,但可以通过以下方法实现类似功能: 使用…

vue实现伸缩

vue实现伸缩

Vue实现伸缩功能的方法 使用CSS过渡和Vue的v-if或v-show 通过CSS的transition属性结合Vue的条件渲染指令(v-if或v-show)可以实现元素的伸缩效果。定义一个CSS类…