当前位置:首页 > 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 创建自定义指令,例如实现自动聚焦:

vue指令实现常见功能

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

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

相关文章

vue实现全选指令

vue实现全选指令

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

vue指令实现

vue指令实现

Vue 指令实现方法 Vue 指令是 Vue.js 提供的特殊功能,用于在 DOM 元素上添加特定行为。通过自定义指令,可以扩展 Vue 的功能,实现更复杂的交互逻辑。 全局注册指令 在 Vue 项…

vue 实现全局指令

vue 实现全局指令

注册全局指令 在Vue中,全局指令可以通过Vue.directive方法注册。该方法接受两个参数:指令名称和指令定义对象。指令定义对象包含一些钩子函数,如bind、inserted、update等,用…

vue if指令实现

vue if指令实现

Vue 的 v-if 指令 v-if 是 Vue 中用于条件渲染的指令,根据表达式的真假值决定是否渲染 DOM 元素。 基本用法 <div v-if="isVisible">这段…

vue指令实现原理

vue指令实现原理

Vue 指令的实现原理 Vue 指令的核心是通过自定义属性对 DOM 进行底层操作,其实现涉及编译、绑定和更新三个阶段。 指令的编译阶段 Vue 在模板编译过程中会解析指令。通过正则匹配模板中的 v…

vue 指令实现原理

vue 指令实现原理

Vue 指令的实现原理 Vue 指令(如 v-model、v-if、v-for 等)是 Vue 模板语法的核心功能之一,其实现基于 Vue 的响应式系统和虚拟 DOM 机制。以下是 Vue 指令的核心…