当前位置: 首页 > news >正文

Vue前端开发:数据绑定方法

在Vue中,数据绑定最常用的方法就是使用Mustache语法,这种语法的标签就是双大括号,因此又被称为双大括号插值语法,在这种语法下,双大括号标签将会被替换为绑定的属性值,并且,当属性值发生变化后,插值处的内容也会同步进行更新。

一、文本插值

所谓的“文本插值”是指使用Mustache语法绑定元素中显示的内容,如下代码:

<div>{{name}}</div>

使用这种方式插值后,如果name值发生了改变,那么,插值处元素的内容也会随之改变,当然,也可以不让它改变,只需要在这个元素上添加一个 v-once指令,如下代码:

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

向元素添加了 v-once 指令后,元素中插入的值只是name属性的初始值,当该属性值变化后,插值处并不会随之改变,这种使用场景也有,但不是太多。

虽然Mustache语法可以向元素的内容插入数据,但它并不能使用这种方式,向元素的属性插入数据,如果想绑定元素的属性,必须使用v-bind指令,并使用冒号“:”,指定绑定属性的名称,如下代码所示:

<div v-bind:class="red">{{name}}</div>

上述代码也等价于下列代码:

<div :class="red">{{name}}</div>

上述两行代码在浏览器中编译后,最终都为相同的一行代码,如下所示:

<div class="red" data-v-160690f0="">123</div>

需要说明的是:无论是name,还是red,它们都是在data函数中定义好的对象属性名称,编译后,绑定的是这个属性名称对应的值,上述两行相同代码中,name属性名对应的值是 123,red属性名对应的值是“red”,因此,才会显示上述编译后的相同代码。

二、JavaScript表达式和HTML插值

Mustache语法不仅可以向元素内容插入文本字符,同时,还可以在语法中插入简单的JavaScript 表达式,如算术运算、三元运算和简单的函数调用,但只能执行单个表达式,不能执行语句。此外,通过向元素添加 v-html指令,又可以向元素中插入 HTML 格式内容,接下来通过一个示例来详细说明它们的使用方法。

实例3-6 JavaScript表达式和HTML插值

1. 功能描述

新建一个组件,添加一个复选框和两个div元素,当选中复选框时,显示“插入HTML格式”,同时,div 元素中内容以HTML格式显示;当取消选中时,显示“插入文本格式”,同时,div 元素中内容以文本格式显示。

2. 实现代码

在项目components 文件夹的ch3子文件夹中,添加一个名为“BindHtml”的.vue文件,在文件中加入如清单3-6所示代码。

代码清单3-6 BindHtml.vue代码

<template><div><div><input type="checkbox" v-model="blnHtml" /> 
插入{{ blnHtml ? "HTML" : "文本" }}格式</div><div v-show="!blnHtml">{{ HTML }}</div><div v-show="blnHtml" v-html="HTML"></div></div>
</template>
<script>
export default {data() {return {blnHtml: true,HTML: "<span style='font-weight:700'>你好,小明!</span>",};},
};
</script>
<style scoped>
div {margin: 10px;text-align: left;
}
</style>
3. 页面效果

保存代码后,页面在Chrome浏览器下执行的页面效果如图3-10所示。
在这里插入图片描述##### 4. 源码分析
  在本示例的模板中,复选框使用v-model 绑定的属性blnHtml是一个布尔值,既可以用于控制复选框元素的选中状态,又参加了不同内容显示的三元运算,同时,还作为v-show指令绑定的属性值,该指令是一个用于控制元素是否显示和隐藏的指令,当该指令的属性值为true时,则元素显示,否则元素隐藏。

由于 v-html 指令用于控制元素的内容是否以HTML格式显示,且只能作用于元素的属性中,因此,通过再向元素添加一个v-show指令绑定blnHtml的属性值,实现HTML格式与文本格式切换显示的效果。
在这里插入图片描述


http://www.mrgr.cn/news/60321.html

相关文章:

  • 什么是大数据?一文讲清大数据的概念、演进、趋势、产业链及关键技术!
  • 新增新质生产力论文复刻(SSCI)10份新质生产力数据合集-最新出炉 附下载链接
  • xlnt加载excel报错:‘localSheetId‘ expected
  • 智慧销售全流程信息化建设,详解艾莱依的产销协同实践!
  • python基于django线上视频学习系统设计与实现_j0189d4x
  • 10_ Linux软件安装指南:RPM、YUM、源码安装
  • php伪协议和move_uploaded_file、rename、copy等文件操作
  • 从0到1,搭建vue3项目
  • 单应性矩阵与相机内外参之间的关系
  • [Mv]_× = M [v]_× M^T的证明
  • flowable 去掉自带的登录权限
  • 基本法代码阅读
  • UDS诊断刷写–跳转执行
  • Sigrity Power SI Noise coupling analysis模式如何观测PDN系统的交流耦合噪声以及平面间电压波动操作指导(二)
  • 未定义项目JDK 解决办法
  • C语言数据结构学习:单链表
  • python3的基本数据类型:Bool(布尔类型)
  • Screen简介和使用
  • Notepad++如何同时检索多个关键字
  • Python自动化个人健康日志与建议:记录日常活动并提供建议
  • Javascript高级:正则表达式基础与应用
  • OOP特性 多态
  • c语言错题——#define对应的查找替换
  • 【JavaEE】【多线程】线程池
  • WebGIS开发之编辑功能(分割、融合、捕捉、追踪)
  • 2023年中国县域统计年鉴(县市卷+乡镇卷)(excel格式)