Vue 3的模板指令可以用于在模板中添加动态行为,包括条件渲染、循环渲染、属性绑定等。以下是Vue 3的常用模板指令及示例代码:
v-if / v-else-if / v-else
v-if指令用于条件渲染,根据表达式的真假值来决定是否渲染某个元素。v-else-if和v-else指令则可以用于在v-if指令的基础上添加更多条件分支。
<template> <div> <div v-if="isShow">Hello World</div> <div v-else-if="isLoading">Loading...</div> <div v-else>Nothing to show</div> </div> </template> <script> export default { data() { return { isShow: true, isLoading: false } } } </script>
在上面的示例中,根据isShow和isLoading的值来渲染不同的元素。
v-for
v-for指令用于循环渲染,根据指定的数据数组或对象来渲染每个元素。
<template> <ul> <li v-for="(item, index) in items" :key="index">{{ item }}</li> </ul> </template> <script> export default { data() { return { items: ['apple', 'banana', 'orange'] } } } </script>
在上面的示例中,根据items数组循环渲染每个元素,并使用:key绑定每个元素的唯一标识。
v-bind
v-bind指令用于动态地绑定HTML元素的属性或组件的props属性。
<template> <div> <img v-bind:src="imageUrl" alt=""> <MyComponent v-bind:prop1="value1" :prop2="value2" /> </div> </template> <script> import MyComponent from './MyComponent.vue' export default { data() { return { imageUrl: 'https://example.com/image.jpg', value1: 'foo', value2: 'bar' } }, components: { MyComponent } } </script>
在上面的示例中,根据imageUrl、value1和value2的值动态地绑定img元素的src属性和MyComponent组件的prop1和prop2属性。
v-on
v-on指令用于绑定DOM事件处理程序。
<template> <button v-on:click="handleClick">Click me</button> </template> <script> export default { methods: { handleClick() { console.log('button clicked') } } } </script>
在上面的示例中,当按钮被点击时会调用handleClick方法。