Vue2中常用指令

news2025/2/14 5:43:59

文章目录

  • Vue2中常用指令
    • 1. v-text 动态渲染纯文本内容
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 2. v-html 动态渲染 HTML 内容
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 3. v-bind 动态绑定 HTML 属性
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
      • 5. 绑定class属性的用法
      • 6. 绑定style属性的用法
      • 7. 修饰符
        • (1) .lazy
        • (2) .number
        • (3) .trim
    • 4. v-model: 双向数据绑定
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 5. v-for: 列表渲染
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 6. v-if、v-else-if 和 v-else 条件渲染
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 7. v-show 条件渲染
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 8. v-on 事件处理
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
      • 5. 修饰符
        • (1) .stop
        • (2) .prevent
        • (3) .capture
        • (4) .self
        • (5) .once
        • (6) .passive
        • (7) .{keyCode | keyAlias}
        • (8) .系统修饰键
        • (9) .exact
        • (10) 鼠标按钮修饰符
    • 9. v-cloak 防止未编译的 Mustahge 语法闪烁
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 10. v-pre 跳过编译
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 11. v-once 只渲染一次
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项
    • 12. v-slot 插槽
      • 1. 作用
      • 2. 基本用法
      • 3. 示例
      • 4. 注意事项

Vue2中常用指令

1. v-text 动态渲染纯文本内容

1. 作用

v-text 指令用于动态地将纯文本内容插入到 DOM 中。它会替换元素的 textContent 属性。

2. 基本用法

<div v-text='textContent'></div>

3. 示例

new Vue({
  el: '#app',
  data: {
    textContent: 'This is dynamic text content.'
  }
});

4. 注意事项

  • v-text 不会解析 HTML 标签,适合插入纯文本内容。
  • 如果需要插入 HTML 内容,建议使用 v-html。

2. v-html 动态渲染 HTML 内容

1. 作用

v-html 指令用于动态地将 HTML 内容插入到 DOM 中。它会替换元素的 innerHTML 属性。

2. 基本用法

<div v-html="htmlContent"></div>

3. 示例

new Vue({
  el: '#app',
  data: {
    htmlContent: '<p style="color: red;">This is dynamic HTML content.</p>'
  }
});

4. 注意事项

  • 使用 v-html 时要小心,避免插入恶意代码或导致 XSS 攻击。
  • 如果需要插入纯文本,建议使用 v-text。

3. v-bind 动态绑定 HTML 属性

1. 作用

v-bind 指令用于动态地绑定一个或多个属性,或一个表达式或对象。当表达式的值变化时,绑定的属性也会自动更新。

2. 基本用法

<!-- 动态绑定一个属性 -->
<img v-bind:src="imageSrc" alt="Dynamic Image">
<!-- 简写 直接在属性前加: -->
<img :src="imageSrc" alt="Dynamic Image">
<!-- 动态绑定多个属性 -->
<img v-bind="{ src: imageSrc, alt: imageAlt }">

3. 示例

new Vue({
  el: '#app',
  data: {
    imageSrc: 'https://example.com/image.jpg',
    imageAlt: 'Vue Logo'
  }
});

4. 注意事项

  • 当属性名包含中划线(kebab-case)时,绑定时需要用引号包裹,例如:v-bind:my-attribute=“value”。
  • v-bind 可以与 CSS 类名绑定,例如:v-bind:class=“className”。

5. 绑定class属性的用法

  • 数组的写法
// 直接传递一个数组, 数组里面的类名要写字符串, 注意:这里的class需要使用v-bind做数据绑定
<p :calss="['thin', 'italic']"></p>
  • 数组中嵌套对象
// 数组中推荐使用这种方式
<p :class="['thin', 'italic',{'active':flag}]"></p> // 这里的flag在data中定义, 是一个布尔值
  • 数组中使用三元表达式
// data中定义一个布尔值类型的flag,在数组中用三元表示来显示这个flag
<p :class="['thin', 'italic', flag ? 'active':'noactive']"></p>
  • 直接使用对象
// 在为class使用v-bind绑定对象的时候,对象的属性是类型,
// 由于对象的属性可带可不带引号,写法自己决定, 属性的值是一个标识符
<p :class="{thin: true, italic: true, active: false}"></p>

6. 绑定style属性的用法

  • 直接在标签上通过 :style 的形式书写
// 对象就是无序键值对的集合
使用方式:
<p :style="{color:'red', 'font-weight':200}"></p>
  • 将样式定义在data中, 在:style绑定的标签中引用
// 先将样式定义在data中的一个变量身上
new app({
    el: "#app",
    data: {
        styleObject: {color:'red', 'font-weight':200}
    }
})
// 在标签上,通过属性绑定的形式,将样式对象应用到元素中
<p :style="styleObject"></p>

  • 在 :style 中通过数组,引用多个 data 上的样式对象
// 先将样式定义在data中的一个变量身上
new app({
    el: "#app",
    data: {
        styleObject1: {color:'red', 'font-weight':200},
        styleObject2: {color:'red', 'font-weight':200}
    }
})
// 在标签上,通过属性绑定的形式,将样式对象应用到元素中
<p :style="[styleObject1, styleObject2]"></p>

7. 修饰符

(1) .lazy
  • 作用: 将 v-model 的更新时机从 input 事件改为 change 事件,即只有在输入框失去焦点或按下回车键时才更新数据。
  • 示例:
<input v-model.lazy="message">
  • 适用场景: 适用于需要延迟更新数据的场景,例如表单提交
(2) .number
  • 作用: 将输入的值自动转换为数字类型。
  • 示例:
<input v-model.number="age" type="number">
  • 适用场景: 适用于需要处理数字输入的场景
(3) .trim
  • 作用: 自动去除输入值的首尾空格。
  • 示例:
<input v-model.trim="message">
  • 适用场景: 适用于需要清理用户输入的场景

4. v-model: 双向数据绑定

1. 作用

v-model 指令用于在表单输入和应用数据之间创建双向绑定。它会根据表单控件的类型自动选择合适的方式更新数据。

2. 基本用法

<!-- 文本输入 -->
<input v-model="message" placeholder="Enter your message">

<!-- 多行文本 -->
<textarea v-model="message"></textarea>

<!-- 单选按钮 -->
<input type="radio" v-model="selected" value="Option 1">
<input type="radio" v-model="selected" value="Option 2">

<!-- 复选框 -->
<input type="checkbox" v-model="checked">

3. 示例

new Vue({
  el: '#app',
  data: {
    message: '',
    selected: '',
    checked: false
  }
});

4. 注意事项

  • v-model 默认会绑定到表单元素的 value 属性,但对于复选框和单选按钮,它会绑定到 checked 属性。
  • 可以通过 .lazy 修饰符延迟更新,直到用户离开输入框时才更新数据。

5. v-for: 列表渲染

1. 作用

v-for 指令用于基于数组或对象渲染一个列表。它可以遍历数组、对象或数字,并为每个元素生成对应的 DOM 结构。

2. 基本用法

<!-- 渲染数组 -->
<ul>
  <li v-for="item in items" :key="item.id">
    {{ item.name }}
  </li>
</ul>

<!-- 渲染对象 -->
<div v-for="(value, key, index) in object" :key="key">
  {{ index }}. {{ key }}: {{ value }}
</div>

3. 示例

new Vue({
  el: '#app',
  data: {
    items: [
      { id: 1, name: 'Apple' },
      { id: 2, name: 'Banana' },
      { id: 3, name: 'Orange' }
    ],
    object: {
      name: 'Vue.js',
      version: '2.6.14',
      description: 'A progressive framework for building user interfaces.'
    }
  }
});

4. 注意事项

  • 使用 v-for 时,建议始终提供唯一的 key 属性,以提高渲染性能并避免潜在的更新问题。
  • 如果需要同时访问索引,可以使用 v-for=“(item, index) in items”。

6. v-if、v-else-if 和 v-else 条件渲染

1. 作用

v-if 指令用于根据表达式的真假条件来动态地渲染元素。v-else-if 和 v-else 则用于提供多个条件分支。

2. 基本用法

<div v-if="type === 'admin'">
  Welcome, Admin!
</div>
<div v-else-if="type === 'user'">
  Welcome, User!
</div>
<div v-else>
  Welcome, Guest!
</div>

3. 示例

new Vue({
  el: '#app',
  data: {
    type: 'user'
  }
});

4. 注意事项

  • v-if 是真正的条件渲染,它会根据条件的真假动态地创建或销毁 DOM 元素。
  • 如果需要频繁切换条件,建议使用 v-show,它只是通过 CSS 的 display 属性控制元素的显示和隐藏。

7. v-show 条件渲染

1. 作用

v-show 指令用于根据表达式的真假值来控制元素的显示或隐藏。它通过动态地切换 CSS 的 display 属性来实现。

2. 基本用法

<div v-show="isVisible">This is visible only if 'isVisible' is true.</div>

3. 示例

new Vue({
  el: '#app',
  data: {
    isVisible: true
  }
});

4. 注意事项

  • v-show 始终会渲染元素,只是通过 CSS 控制其显示或隐藏。
  • 与 v-if 不同,v-show 不会销毁或重新创建 DOM 元素,因此适合频繁切换的场景。

8. v-on 事件处理

1. 作用

v-on 指令用于监听 DOM 事件,并在事件触发时执行 JavaScript 函数。它支持各种事件,如点击、输入、提交等。

2. 基本用法

<!-- 点击事件 -->
<button v-on:click="handleClick">Click Me</button>

<!-- 键盘事件 -->
<input v-on:keyup.enter="handleEnter" placeholder="Press Enter">
<!-- 简写  v-on: => @ -->
<input @keyup.enter="handleEnter" placeholder="Press Enter">

3. 示例

new Vue({
  el: '#app',
  methods: {
    handleClick() {
      alert('Button clicked!');
    },
    handleEnter() {
      alert('Enter key pressed!');
    }
  }
});

4. 注意事项

  • v-on 可以简写为 @,例如:@click=“handleClick”。
  • 可以通过修饰符(如 .stop、.prevent、.capture)来增强事件处理能力。

5. 修饰符

(1) .stop
  • 作用: 阻止事件冒泡,即阻止事件向上级 DOM 元素传播。
  • 示例:
<button @click.stop="handleClick">Click Me</button>
  • 适用场景: 适用于需要防止事件冒泡的场景
(2) .prevent
  • 作用: 阻止事件的默认行为,例如表单提交时阻止页面刷新。
  • 示例:
<form @submit.prevent="handleSubmit">
  <button type="submit">Submit</button>
</form>
  • 适用场景: 适用于需要阻止默认行为的场景
(3) .capture
  • 作用: 使用事件的捕获模式,即事件在目标元素触发前先在父元素捕获。
  • 示例:
<div @click.capture="handleCapture">
  <button @click="handleClick">Click Me</button>
</div>
  • 适用场景: 适用于需要在父元素捕获事件的场景
(4) .self
  • 作用: 只有当事件的目标元素是当前元素时才触发处理函数。
  • 示例:
<div @click.self="handleSelf">
  <button @click="handleClick">Click Me</button>
</div>
  • 适用场景: 适用于需要区分事件来源的场景
(5) .once
  • 作用: 事件只触发一次。
  • 示例:
<button @click.once="handleOnce">Click Me</button>
  • 适用场景: 适用于需要限制事件触发次数的场景
(6) .passive
  • 作用: 事件的默认行为立即执行,不会等待事件处理函数完成。
  • 示例:
<div @scroll.passive="handleScroll">Scroll Me</div>
  • 适用场景: 适用于需要优化滚动性能的场景
(7) .{keyCode | keyAlias}
  • 作用: 从特定键触发事件时执行。
  • 示例:
<input @keyup.13="handleSubmit"> <!-- 13 是 Enter 键的 keyCode -->
<input @keyup.enter="handleSubmit"> <!-- 使用别名 -->
  • 适用场景: 适用于需要监听特定按键的场景
(8) .系统修饰键
.ctrl
.alt
.shift
.meta
  • 作用: 仅在按下相应按键时才触发事件。
  • 示例:
<div @click.ctrl="handleCtrl">Click Me</div>
  • 适用场景: 适用于需要组合键触发事件的场景
(9) .exact
  • 作用: 仅在按下精确的系统修饰符组合时才触发事件。
  • 示例:
<button @click.ctrl.exact="handleExact">Click Me</button>
  • 适用场景: 适用于需要精确控制修饰键的场景。
(10) 鼠标按钮修饰符
.left
.right
.middle
  • 作用: 限制处理函数仅响应特定的鼠标按钮。
  • 示例:
<div @click.left="handleLeft">Click Me</div>
  • 适用场景: 适用于需要区分鼠标按钮的场景

9. v-cloak 防止未编译的 Mustahge 语法闪烁

1. 作用

v-cloak 指令用于在 Vue 实例初始化之前隐藏未编译的 Mustache 语法,防止页面在加载时显示原始的模板语法。

2. 基本用法

<div v-cloak>
 {{ message }}
</div>

3. 示例

new Vue({
  el: '#app',
  data: {
    message: 'Hello, Vue!'
  }
});

4. 注意事项

  • 通常与 CSS 样式配合使用,例如:[v-cloak] { display: none; }。
  • 在生产环境中,建议使用 v-cloak 来避免页面加载时的闪烁问题。

10. v-pre 跳过编译

1. 作用

v-pre 指令用于跳过 Vue 的编译过程,直接显示原始的 Mustache 语法或模板内容。

2. 基本用法

<div v-pre>
  {{ This will not be compiled by Vue }}
</div>

3. 示例

new Vue({
  el: '#app'
});

4. 注意事项

  • v-pre 通常用于调试或展示 Vue 的模板语法。
  • 被 v-pre 标记的内容不会被 Vue 编译,因此不会响应数据变化

11. v-once 只渲染一次

1. 作用

v-once 指令用于让数据只渲染一次,后续数据变化不会更新视图。

2. 基本用法

<div v-once>
  {{ message }}
</div>

3. 示例

new Vue({
  el: '#app',
  data: {
    message: 'This will not update if message changes.'
  }
});

4. 注意事项

  • v-once 适合用于不需要动态更新的内容,例如版权声明或固定的提示信息。
  • 使用 v-once 后,Vue 不会再监听该部分的 DOM 更新。

12. v-slot 插槽

1. 作用

v-slot 指令用于定义组件的插槽内容,允许在组件内部插入自定义内容。

2. 基本用法

<my-component>
  <template v-slot:header>
    <h1>Header Content</h1>
  </template>
  <template v-slot:default>
    <p>Default Slot Content</p>
  </template>
  <template v-slot:footer>
    <p>Footer Content</p>
  </template>
</my-component>

3. 示例

Vue.component('my-component', {
  slots: {
    header: 'header',
    default: 'default',
    footer: 'footer'
  }
});

new Vue({
  el: '#app'
});

4. 注意事项

  • v-slot 是 Vue 2.6+ 引入的新语法,用于替代 slot 和 slot-scope。
  • 可以使用 # 语法简写,例如:<template #header>…。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2297737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sequence to Sequence model

基础模型 基础模型是用RNN模型&#xff0c;前部分是encoder用来寻找法语输入的编码&#xff0c;后半部分是decoder用来生成英文翻译作为输出&#xff0c;每次输出一个单词&#xff0c;直到输出结束标志如EOS。 下面是另一个例子&#xff0c;在CNN模型输出层之前会输出图片的向…

6.appender

文章目录 一、前言二、源码解析AppenderUnsynchronizedAppenderBaseOutputStreamAppenderConsoleAppenderFileAppenderRollingFileAppenderFileNamePattern 三、总结 一、前言 前一篇文章介绍了appender、conversionRule、root和logger节点的解析, 为的是为本篇详细介绍它们的…

Golang的消息队列架构

一、消息队列的定义和作用 消息队列是一种在不同组件之间传递消息的通信机制。它可以解耦系统的各个部分&#xff0c;提高系统的可靠性和扩展性。消息队列可以在系统之间传递消息&#xff0c;并且在消息发送者和消息接收者之间进行异步通信&#xff0c;使得系统可以更加灵活和高…

GESP5级语法知识(十一):高精度算法(一)

高精度加法&#xff1a; #include<iostream> #include<string> #include<algorithm> using namespace std; const int N501;//高精度数的最长长度 //c[]a[]b[]:高精度加法方案一&#xff1a;对应位相加&#xff0c;同时处理进位 void h_add_1(int a[],int b…

【前端】 react项目使用bootstrap、useRef和useState之间的区别和应用

一、场景描述 我想写一个轮播图的程序&#xff0c;只是把bootstrap里面的轮播图拉过来就用上感觉不是很合适&#xff0c;然后我就想自己写自动轮播&#xff0c;因此&#xff0c;这篇文章里面只是自动轮播的部分&#xff0c;没有按键跟自动轮播的衔接部分。 Ps: 本文用的是函数…

PYYAML反序列化详解

前言 最近看了很多pyyaml反序列化的漏洞利用&#xff0c;但是对漏洞怎么来的&#xff0c;没有进行很详细的分析&#xff0c;所以今天刚好学习一下反序列化的原理 Yaml基本语法 一个 .yml 文件中可以有多份配置文件&#xff0c;用 --- 隔开即可对大小写敏感YAML 中的值&#x…

LeeCode题库第十八题

项目场景&#xff1a; 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&…

Zookeeper 和 Redis 哪种更好?

目录 前言 &#xff1a; 什么是Zookeeper 和 Redis &#xff1f; 1. 核心定位与功能 2. 关键差异点 (1) 一致性模型 (2) 性能 (3) 数据容量 (4) 高可用性 3. 适用场景 使用 Zookeeper 的场景 使用 Redis 的场景 4. 替代方案 5. 如何选择&#xff1f; 6. 常见误区 7. 总结 前言…

公然上线传销项目,Web3 的底线已经被无限突破

作者&#xff1a;Techub 热点速递 撰文&#xff1a;Yangz&#xff0c;Techub News 今天早些时候&#xff0c;OKX 将上线 PI 的消息在圈内引起轩然大波&#xff0c;对于上线被板上钉钉为传销盘子的「项目」 &#xff0c;Techub News 联系了 OKX 公关&#xff0c;但对方拒绝置评…

C语言第18节:自定义类型——联合和枚举

1. 联合体 C语言中的联合体&#xff08;Union&#xff09;是一种数据结构&#xff0c;它允许在同一内存位置存储不同类型的数据。不同于结构体&#xff08;struct&#xff09;&#xff0c;结构体的成员各自占有独立的内存空间&#xff0c;而联合体的所有成员共享同一块内存区域…

解锁网络安全:穿越数字世界的防护密码

个人主页&#xff1a;java之路-CSDN博客(期待您的关注) 目录 网络安全&#xff1a;数字时代的基石 网络安全面面观 &#xff08;一&#xff09;定义与范畴 &#xff08;二&#xff09;发展历程 网络安全面临的威胁 &#xff08;一&#xff09;恶意软件肆虐 &#xff08;二…

python爬虫解决无限debugger问题

方法一 关闭定时任务 关闭断点执行代码打开断点 # 无限debugger产生原因 # 1. web开发者工具打开 # 2. js代码中有debugger # 3. js有定时处理[推荐] for(let i0;i<99999;i){window.clearInterval(i)}方法二 关闭breakpoint 方法三 修改JS代码 使用fiddler&#xff0c;抓…

C# 两种方案实现调用 DeepSeek API

目录 序 开发运行环境 访问API的一个通用方法 原生官网实现 申请 API key 调用实现 调用示例 腾讯云知识引擎原子调用 申请 API key 调用示例 小结 序 DeepSeek&#xff08;深度求索&#xff09; 最近可谓火爆的一塌糊涂&#xff0c;具体的介绍这里不再赘述&#x…

Linux下的进程切换与调度

目录 1.进程的优先级 优先级是什么 Linux下优先级的具体做法 优先级的调整为什么要受限 2.Linux下的进程切换 3.Linux下进程的调度 1.进程的优先级 我们在使用计算机的时候&#xff0c;通常会启动多个程序&#xff0c;这些程序最后都会变成进程&#xff0c;但是我们的硬…

anolis os 8.9安装jenkins

一、系统版本 # cat /etc/anolis-release Anolis OS release 8.9 二、安装 # dnf install -y epel-release # wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo # rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.…

Java基础知识总结(四十八)--TCP传输、TCP客户端、TCP服务端

**TCP传输&#xff1a;**两个端点的建立连接后会有一个传输数据的通道&#xff0c;这通道称为流&#xff0c;而且是建立在网络基础上的流&#xff0c;称之为socket流。该流中既有读取&#xff0c;也有写入。 **tcp的两个端点&#xff1a;**一个是客户端&#xff0c;一个是服务…

【python】http.server内置库构建临时文件服务

需要从linux开发机上下载一个文件到本地&#xff0c;约700M比较大&#xff0c;通过sz命令下载较慢且传输过程不稳定连续失败&#xff0c;后采用下面方式解决。 cd到一个目录下执行python -m http.server port&#xff0c;port为服务的端口号&#xff1a; 启动后浏览器中访问…

网络安全ids是什么意思

1、 简述IPS和IDS的异同点&#xff1b; 入侵检测系统&#xff08;IDS&#xff09; IDS&#xff08;Intrusion Detection Systems&#xff0c;入侵检测系统&#xff09;&#xff0c;专业上讲就是依照一定的安全策略&#xff0c;对网络、系统、运行状况进行监视&#xff0c;尽可能…

优选驾考小程序

第2章 系统分析 2.1系统使用相关技术分析 2.1.1Java语言介绍 Java语言是一种分布式的简单的 开发语言&#xff0c;有很好的特征&#xff0c;在安全方面、性能方面等。非常适合在Internet环境中使用&#xff0c;也是目前企业级运用中最常用的一个编程语言&#xff0c;具有很大…

42.水果销售系统(springbootvue的Java项目[含微信小程序])

目录 1.系统的受众说明 2.开发环境与技术 2.1 MYSQL数据库 2.2 Java语言 2.3 微信小程序技术 2.4 SpringBoot框架 2.5 B/S架构 2.6 Tomcat 介绍 2.7 HTML简介 2.8 MyEclipse开发工具 3.系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作…