当前位置:首页 > VUE

vue指令实现常见功能

2026-01-21 22:41:34VUE

v-model 实现双向数据绑定

v-model 用于表单元素(如 <input><textarea><select>)与数据的双向绑定。

<template>
  <input v-model="message" placeholder="输入内容">
  <p>当前内容: {{ message }}</p>
</template>
<script>
export default {
  data() {
    return {
      message: ''
    };
  }
};
</script>

v-for 渲染列表

v-for 遍历数组或对象生成动态内容,需配合 :key 提升性能。

<template>
  <ul>
    <li v-for="(item, index) in items" :key="index">
      {{ item.name }} - {{ item.price }}
    </li>
  </ul>
</template>
<script>
export default {
  data() {
    return {
      items: [
        { name: '商品A', price: 100 },
        { name: '商品B', price: 200 }
      ]
    };
  }
};
</script>

v-if/v-show 条件渲染

  • v-if:动态添加/移除 DOM 元素,适合切换频率低的场景。
  • v-show:通过 display: none 隐藏元素,适合频繁切换。
    <template>
    <div v-if="isVisible">v-if 控制的元素</div>
    <div v-show="isVisible">v-show 控制的元素</div>
    <button @click="isVisible = !isVisible">切换显示</button>
    </template>
    <script>
    export default {
    data() {
      return {
        isVisible: true
      };
    }
    };
    </script>

v-bind 动态绑定属性

缩写为 :,用于动态绑定 HTML 属性或组件 props。

<template>
  <img :src="imageUrl" :alt="imageAlt">
  <button :disabled="isDisabled">提交</button>
</template>
<script>
export default {
  data() {
    return {
      imageUrl: '/path/to/image.jpg',
      imageAlt: '示例图片',
      isDisabled: false
    };
  }
};
</script>

v-on 绑定事件监听器

缩写为 @,用于监听 DOM 事件或自定义事件。

<template>
  <button @click="handleClick">点击事件</button>
  <input @keyup.enter="handleEnter">
</template>
<script>
export default {
  methods: {
    handleClick() {
      alert('按钮被点击');
    },
    handleEnter() {
      console.log('按下了回车键');
    }
  }
};
</script>

v-once 单次渲染

v-once 使元素及其子元素只渲染一次,后续数据变化不再更新。

<template>
  <div v-once>{{ staticContent }}</div>
</template>
<script>
export default {
  data() {
    return {
      staticContent: '初始内容'
    };
  }
};
</script>

v-html 渲染原始 HTML

谨慎使用,避免 XSS 攻击,仅渲染可信内容。

<template>
  <div v-html="rawHtml"></div>
</template>
<script>
export default {
  data() {
    return {
      rawHtml: '<span style="color: red">红色文本</span>'
    };
  }
};
</script>

自定义指令

通过 directives 创建自定义指令,例如实现自动聚焦:

<template>
  <input v-focus>
</template>
<script>
export default {
  directives: {
    focus: {
      mounted(el) {
        el.focus();
      }
    }
  }
};
</script>

vue指令实现常见功能

标签: 指令常见
分享给朋友:

相关文章

vue if指令实现

vue if指令实现

Vue 的 v-if 指令实现 v-if 是 Vue 的核心指令之一,用于条件性地渲染一块内容。当表达式为真值时,元素会被渲染;否则,元素不会被渲染。 基本语法 <template&g…

vue指令实现原理

vue指令实现原理

Vue 指令的实现原理 Vue 指令的核心是通过自定义属性(如 v-model、v-if)扩展 HTML 功能,其实现依赖于编译、响应式系统和 DOM 操作。以下是关键实现机制: 编译阶段解析指…

vue实现全选指令

vue实现全选指令

实现全选指令的方法 在Vue中实现全选功能可以通过自定义指令或组件方法完成。以下是两种常见的实现方式: 自定义指令实现 Vue.directive('select-all', { bind(el…

vue 指令实现原理

vue 指令实现原理

Vue 指令的实现原理 Vue 指令是 Vue.js 提供的一种特殊属性,用于在 DOM 元素上绑定特定的行为。指令的实现原理主要涉及以下几个核心机制: 指令的注册与解析 Vue 通过 Vue.d…

vue指令如何实现

vue指令如何实现

Vue 指令的基本实现方式 Vue 指令通过 Vue.directive 方法注册,接受一个指令名和一个定义对象。定义对象包含钩子函数(如 bind、inserted、update 等),用于在不同阶…

vue指令实现源码

vue指令实现源码

以下是 Vue 指令实现的源码解析,主要分为核心实现逻辑和常见指令示例: Vue 指令核心实现 Vue 的指令系统通过 directives 模块实现,核心代码位于 src/core/vdom/m…