当前位置:首页 > 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。

vue指令实现常见功能

<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 使元素及其子元素只渲染一次,后续数据变化不再更新。

vue指令实现常见功能

<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指令实现源码

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

react指令如何实现

react指令如何实现

React 指令的实现方法 React 本身没有内置指令系统,但可以通过多种方式模拟类似功能。以下是常见的实现方法: 自定义 Hook 实现指令 自定义 Hook 可以封装指令逻辑并复用: fun…

vue指令实现权限

vue指令实现权限

vue指令实现权限 在Vue中实现权限控制可以通过自定义指令或结合路由守卫等方式完成。以下是几种常见的实现方法: 自定义指令v-permission 通过自定义指令v-permission可以控制元…

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…