0

0

如何使用Vue3的模板语法?

WBOY

WBOY

发布时间:2023-05-10 09:34:16

|

2318人浏览过

|

来源于亿速云

转载

一、什么是模板语法?

我们可以把 vue.js 的模板语法,直接理解为 html 语法的一种扩展,它所有的模板节点声明、属性设置和事件注册等都是按照 html 的语法来进行扩展设计的。按照官方的说法就是“所有的 vue 模板都是语法层面合法的 html,可以被符合规范的浏览器和 html 解析器解析”。

Vue 使用一种基于 HTML 的模板语法,使我们能够声明式地将其组件实例的数据绑定到呈现的 DOM 上

二、内容渲染指令

1. v-text

使用 v-tex t指令,将数据采用纯文本方式填充其空元素中

// 组合式


2. {{ }} 插值表达式

在元素中的某一位置采用纯文本的方式渲染数据

// 组合式


3. v-html

使用 v-html 指令,将数据采用 HTML 语法填充其空元素中

// 组合式


三、双向绑定指令

1. v-model

v-model 双向数据绑定指令,视图数据和数据源同步
一般情况下 v-model 指令用在表单元素中:

立即学习前端免费学习笔记(深入)”;

  • 文本类型的

  • 会绑定 checked 属性并侦听 change 事件

// 组合式


2. v-model的修饰符

修饰符 作用 示例
.number 自动将用户的输入值转为数值类型
.trim 自动过滤用户输入的首尾空白字符
.lazy chang 时而非 input 时更新
// 组合式


四、属性绑定指令

  • 响应式地绑定一个元素属性,应该使用 v-bind: 指令

  • 如果绑定的值是 null 或者 undefined,那么该属性将会从渲染的元素上移除

  • 因为 v-bind 非常常用,我们提供了特定的简写语法:

// 组合式


1. 动态绑定多个属性值

直接使用 v-bind 来为元素绑定多个属性及其值

// 组合式




渲染结果:

2. 绑定class和style属性

classstyle 可以和其他属性一样使用 v-bind 将它们和动态的字符串绑定;但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的;因此, Vue 专门为 classstylev-bind 用法提供了特殊的功能增强;除了字符串外,表达式的值也可以是对象或数组。

class属性绑定

绑定对象

// 组合式




绑定数组

// 组合式




style属性绑定

绑定对象

// 组合式




绑定数组

还可以给 :style 绑定一个包含多个样式对象的数组,这些对象会被合并后渲染到同一元素上

// 组合式






五、条件渲染指令

1. v-if、v-else-if、v-else

  • v-if 指令用于条件性地渲染元素;该内容只会在指令的表达式返回真值时才被渲染

  • v-else-if 提供的是相应于 v-ifelse if 区块,它可以连续多次重复使用

  • 你也可以使用 v-elsev-if 添加一个 else 区块

  • v-elsev-else-if 指令必须配合

  • v-if 指令一起使用 ,否则它将不会被识别,而且语句块中间不能出现无关其他元素v-if 支持在 元素上使用,这只是一个不可见的包装器元素,最后渲染的结果并不会包含这个 元素

// 组合式



2. v-show

  • v-show 按条件显示一个元素的指令v-show 会在 DOM 渲染中保留该元素

  • v-show 仅切换了该元素上名为 displayCSS 属性

    网奇Eshop网络商城系统
    网奇Eshop网络商城系统

    网奇.NET网络商城系统是基于.Net平台开发的免费商城系统。功能强大,操作方便,设置简便。无需任何设置,上传到支持asp.net的主机空间即可使用。系统特色功能:1、同时支持Access和SqlServer数据库;2、支持多语言、多模板3、可定制缺货处理功能4、支持附件销售功能5、支持会员组批发功能6、提供页面设计API函数7、支持预付款功能8、配送价格分地区按数学公式计算9、商品支持多类别,可

    下载
  • v-show 不支持在 元素上使用,也不能和 v-else 搭配使用


// 组合式



3. v-if和v-show的区别

  • v-if 是“真实的”按条件渲染,因为它确保了在切换时,条件区块内的事件监听器和子组件都会被销毁与重建

  • v-if 也是惰性的:如果在初次渲染时条件值为 false,则不会做任何事;条件区块只有当条件首次变为 true 时才被渲染

  • v-show 元素无论初始条件如何,始终会被渲染,只有 CSS display 属性会被切换

  • v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销;如果需要频繁切换,则使用 v-show 较好;如果在运行时绑定条件很少改变,则 v-if 会更合适

六、事件绑定指令

我们可以使用 v-on: 指令 (简写为@) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript
用法:v-on:click=""@click=""

用法:

// 组合式

1. 事件修饰符

事件修饰符 说明
.prevent 阻止默认行为
.stop 阻止事件冒泡
.capture 以捕获模式触发当前的事件处理函数
.once 绑定的事件只触发1次
.self 只有在event.target是当前元素自身时触发事件处理函数
.passive 向浏览器表明了不想阻止事件的默认行为

.prevent

.prevent :阻止该事件的默认行为

// 组合式



.stop

.stop :阻止事件产生的冒泡现象

// 组合式




.once

.once :绑定的事件只触发 1

// 组合式


.self

.self :只有在 event.target 是当前元素自身时触发事件处理函数

// 组合式




.capture

.capture 给元素添加一个监听器

  • 当元素事件产生冒泡时,先触发的是该修饰符的元素的事件

  • 如果有多个该修饰符,则由外向内依次触发

// 组合式




.passive

.passive :不阻止事件的默认行为,与 .prevent 不要同时使用

// 组合式


2. 按键修饰符

按键别名:.enter.tab.esc.space.up.down.left.right.delete (捕获 DeleteBackspace 两个按键)
系统修饰符:.ctrl.alt.shift.meta
准确的修饰符:.exact

// 组合式


3. 鼠标按键修饰符

鼠标按键修饰符:.left.right.middle

// 组合式







七、列表渲染指令

使用 v-for 指令基于一个数组来渲染一个列表

1. v-for渲染数组

语法:

in 前一个参数:item in items
item :值
items :需要循环的数组in 前两个参数:(value, index) in items
value :值
index :索引
items :需要循环的数组

// 组合式


2. v-for渲染对象

使用 v-for 来遍历一个对象的所有属性,遍历的顺序会基于对该对象调用 Object.keys() 的返回值来决定
语法:

in 前一个参数:value in object
value :属性值
items :需要循环的对象in 前两个参数:(value, name) in object
value :属性值
name :键
items :需要循环的对象in 前三个参数:(value, name, index) in object
value :属性值
name :键
index :索引
items :需要循环的对象

// 组合式


3. 通过 key 管理状态

当列表的数据变化时,默认情况下,vue 会尽可能的复用已存在的 DOM 元素,从而提升渲染的性能;但这种默认的性能优化策略,会导致有状态的列表无法被正确更新。
为了给 vue 一个提示,以便它能跟踪每个节点的身份,从而在保证有状态的列表被正确更新的前提下,提升渲染的性能;此时,需要为每项提供一个唯一的key属性:
key 的注意事项:

  • key 的类型只能是 Number/String

  • key 值必须具有唯一性

  • 建议循环的列表有一个属性当 key(该属性的值在此列表中唯一)

  • 不使用索引当 key

  • 建议使用 v-for 指令时一定要指定 key 的值

// 组合式


如何使用Vue3的模板语法?如何使用Vue3的模板语法?

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

4

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

10

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

15

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 1.4万人学习

Vue3.x 核心篇--十天技能课堂
Vue3.x 核心篇--十天技能课堂

共30课时 | 1.5万人学习

Vue3.x新特性篇--十天基础课堂
Vue3.x新特性篇--十天基础课堂

共20课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号