返回
Vue3指令详解,让你的开发更高效
前端
2023-12-17 07:54:16
前言
在使用 <template>
时,必不可少的就是用到形形色色的指令。在 Vue3 中,官方给我们提供了 14 个常规指令和 3 个特殊指令。其中,使用频次最高的就是 v-bind、v-if、v-for、v-model、v-on 等指令。
常用指令
v-bind
v-bind 指令用于绑定 HTML 属性。它的语法如下:
v-bind:属性名="表达式"
例如,要绑定一个名为 src
的属性,可以使用以下代码:
<img v-bind:src="imageUrl">
v-if
v-if 指令用于判断一个表达式是否为真,如果为真则显示元素,否则隐藏元素。它的语法如下:
v-if="表达式"
例如,要判断一个名为 isShow
的变量是否为真,可以使用以下代码:
<div v-if="isShow">显示元素</div>
v-for
v-for 指令用于遍历一个数组或对象。它的语法如下:
v-for="(item, index) in 数组或对象"
例如,要遍历一个名为 list
的数组,可以使用以下代码:
<ul>
<li v-for="item in list">{{ item }}</li>
</ul>
v-model
v-model 指令用于绑定表单元素的值。它的语法如下:
v-model="变量名"
例如,要绑定一个名为 input
的输入框,可以使用以下代码:
<input v-model="input">
v-on
v-on 指令用于监听事件。它的语法如下:
v-on:事件名="函数名"
例如,要监听一个名为 click
的事件,可以使用以下代码:
<button v-on:click="handleClick">点击</button>
特殊指令
v-once
v-once 指令用于只渲染元素一次。它的语法如下:
v-once
例如,要只渲染一次一个名为 div
的元素,可以使用以下代码:
<div v-once>只渲染一次</div>
v-slot
v-slot 指令用于定义插槽。它的语法如下:
v-slot="插槽名"
例如,要定义一个名为 header
的插槽,可以使用以下代码:
<template v-slot:header>
<h1>标题</h1>
</template>
v-pre
v-pre 指令用于防止编译器编译元素。它的语法如下:
v-pre
例如,要防止编译器编译一个名为 div
的元素,可以使用以下代码:
<div v-pre>{{ 未编译内容 }}</div>
结语
以上就是 Vue3 中常用指令的介绍。通过使用这些指令,我们可以轻松地构建出复杂的 UI 界面。
代码示例
// v-bind 示例
const app = Vue.createApp({
data() {
return {
imageUrl: 'https://example.com/image.png',
}
},
})
// v-if 示例
const app = Vue.createApp({
data() {
return {
isShow: true,
}
},
})
// v-for 示例
const app = Vue.createApp({
data() {
return {
list: ['item1', 'item2', 'item3'],
}
},
})
// v-model 示例
const app = Vue.createApp({
data() {
return {
input: '',
}
},
})
// v-on 示例
const app = Vue.createApp({
data() {
return {
count: 0,
},
methods: {
handleClick() {
this.count++
},
}
},
})