• Vue.js+Node.js全栈开发教程:Vue.js插值


    本节介绍Vue.js框架模板语法中插值的内容,并讲解如何通过插
    值实现数据绑定的功能。

    9.2.1 文本插值
    在Vue.js框架中,进行数据绑定最常见的方式就是使用遵循
    Mustache语法的“双大括号(?? ??)”形式的文本插值。下面看一个
    最简单的、使用文本插值的代码实例。
    【 代 码 9-1 】 ( 详 见 源 代 码 vuetemplate 目 录 中 的
    vuetemplate.html文件)

    【代码说明】
    第01~15行代码中,通过<di?>元素定义了一个层(id="id-di?-
    tem?l-text"),在该层内部定义了一个表格(<table>)。在该
    表格内,通过Vue.js框架的文本插值模板语法({{ }})引用了一
    组对象(id、name和age)。
    第1?~2?行代码中,通过“ne? Vue()”构造函数实例化Vue对象
    (?m)。同时,这段代码创建了Vue对象的入口,并将该对象所定
    义的内容渲染到页面中对应的DOM元素中。具体说明如下:
    ■ 第18行代码中,通过el属性绑定了第01~15行代码中定
    义的DOM元素(id="id-di?-tem?l-text")。
    ■ 第1?~2?行代码中,通过data属性进行绑定数据操作。
    其中,在第20~22行代码中定义了一组?ro?erty属性
    (id、name和age)并进行了初始化操作,一一对应于上
    面表格(<table>)中通过Vue文本插值模板语法引用的
    对象(id、name和age)。
    下面通过VS Code开发工具启动FireFox浏览器,运行测试
    vuetemplate.html页面,效果如图9.1所示。

     

    当绑定的数据对象上的property属性值发生改变,插值标签处的内容
    也都会随之进行更新。
    9.2.2 原始HTML插值
    在Vue.js框架中,使用Mustache语法的“双大括号(?? ??)”形
    式的文本插值,会将任何内容转换为文本形式。这样就会带来一个问
    题,如果想在页面展示HTML代码定义的内容就无法实现了,因为文本
    插值会将HTML标签直接作为文本输出。
    因此,Vue.js框架设计了一个v-html指令,用于直接输出原始
    HTML代码定义的内容。下面来看一个使用原始HTML文本插值的代码实
    例。
    【 代 码 9-2 】 ( 详 见 源 代 码 vuetemplate 目 录 中 的
    vuetemplate.html文件)

     

    【代码说明】
    第06行代码中,通过Vue.js框架的文本插值模板语法({{ }})引
    用了第一个对象(msg),对象(msg)的定义在Vue构造函数中的
    第18行代码。
    第10行代码中,通过Vue.js框架的?-html指令插值语法引用了第
    二个对象(msgHtml),对象(msgHtml)的定义在Vue构造函数中
    的第1?行代码。
    第15~21行代码中,定义了Vue构造函数。其中,第1?~20行代码
    通过data属性进行绑定数据操作。具体说明如下:
    ■ 第18行代码中,定义了第一个?ro?erty属性(msg)并初
    始化为一行字符串信息,对应第06行代码中通过Vue文本
    插值模板语法引用的对象(msg)。不过请读者注意,该
    字符串中包含了一个换行元素(<br>),因此实际上是
    一段HTML代码。
    ■ 第1?行代码中,定义了第二个?ro?erty属性(msgHtml)
    并初始化为与上面(msg)相同的字符串信息,对应第10
    行 代 码 中 通 过 ?-html 指 令 插 值 语 法 引 用 的 对 象
    (msgHtml)。通过第18行和第1?行代码页面显示效果的
    对比,可以看到文本插值与?-html指令插值的功能差
    别。
    下面通过VS Code开发工具启动FireFox浏览器,运行测试
    vuetemplate.html页面,效果如图9.2所示

     

    如图9.2中的标识所示,使用Mustache语法的“双大括号(??
    ??)”文本插值方式,将HTML换行标签(<br>)识别成普通文本进行
    显示。而使用v-html指令插值语法方式,才可以实现HTML代码的换行
    效果。
    9.2.3 使用JavaScript表达式
    在前面的代码实例中,使用Mustache语法的文本插值基本都是绑
    定了简单的property属性值。其实,Vue.js框架对于所有的数据绑
    定,都是支持一个完整的JavaScript表达式的。不过需要注意,这里
    支持的仅仅是JavaScript表达式,而不支持JavaScript语句。下面看
    一个使用JavaScript表达式插值的代码实例。
    【 代 码 9-3 】 ( 详 见 源 代 码 vuetemplate 目 录 中 的
    vuetemplate.html文件)

     

    【代码说明】
    第10行代码中,通过文本插值模板语法({{ }})引用了?ro?erty
    属性(id),并改写成为Ja?aScri?t算术运算表达式(id +
    1)。同样地,第15行代码也引用了?ro?erty属性(id),并改写
    成为Ja?aScri?t算术运算表达式(id ? id)。
    第11行代码中,通过文本插值模板语法({{ }})引用?ro?erty属
    性 ( name ) , 并 通 过 Ja?aScri?t 的 String 对 象 方 法
    toLo?erCase(),将属性(name)的字符串修改为小写格式。同样
    地,第15行代码将属性(name)的字符串修改为大写格式,第21
    行代码将属性(name)的字符串进行反转操作。
    第12行和第1?行代码中,通过文本插值模板语法({{ }})引用
    ?ro?erty 属 性 ( gender ) , 并 通 过 三 元 表 达 式 ? 断 属 性
    (gender)的布尔值,并计算出结果('male'or 'female')。
    在第20行代码定义的文本插值模板语法({{ }})中,通过引用
    Ja?aScri?t的Math对象方法计算出了一个随机数(100以内)。
    在第22行代码定义的文本插值模板语法({{ }})中,通过引用
    Ja?aScri?t的Date对象方法获取当前时间的年份。
    下面通过VS Code开发工具启动FireFox浏览器,运行测试
    vuetemplate.html页面,效果如图9.3所示。

     

    如图9.3中的箭头所示,在Mustache语法的文本插值方式中,使用
    JavaScript表达式插值语法可以被Vue.js框架正确解析。 

  • 相关阅读:
    论文阅读《2022ICLR:Are Message Passing Neural Networks Really Helpful for Knowledge Graph Completion? 》
    解决QT信号在信号和槽连接前发出而导致槽函数未调用问题
    .NET Core WebAPI 部署IIS后 Swagger.json 提示没有找到问题与解决方案
    maven如何快速查找某个包哪里引入的
    oracle中使用rownum作为条件的失效问题的原因和解决方法
    【数据结构:线性表——2.2 列表】
    vue的孙组件获取祖组件数据的方法(this.$parent)
    Golang分布式应用之ZooKeeper
    基于深度学习的加密恶意流量检测
    1044 火星数字 (测试点2.4说明)
  • 原文地址:https://blog.csdn.net/tysonchiu/article/details/125436706