Vue插值:双大括号标签、v-text、v-html、v-bind 指令

news2025/2/22 7:34:31

创建应用程序实例后,需要通过插值进行数据绑定。数据绑定是 Vue.js 最核心的一个特性。建立数据绑定后,数据和视图会相互关联,当数据发生变化时,视图会自动进行更新。这样就无须手动获取 DOM 的值,使代码更加简洁,提高了开发效率。

1、双大括号标签:文本插值

1.1 基本形式

文本插值是数据绑定最基本的形式,使用的是双大括号{{ }}标签。它会自动将绑定的事件实时显示出来。

【实例】使用的是双大括号{{ }}标签,将文本插入到HTML标签中。

<body>
    <div id="app">
        <h3>{{title}}</h3>
        <p>用户ID:{{userInfo.userId}}</p>
        <p>用户名称:{{userInfo.userName}}</p>
        <p>博客信息:{{userInfo.blogName}}</p>
        <p>博客地址:{{userInfo.blogUrl}}</p>
    </div>
</body>

<!-- 引入 Vue 框架 -->
<script src="../js/vue.global.js"></script>

<script type="text/javascript">
    // 使用 Vue.createApp 函数创建一个应用程序实例
    const vueApp = Vue.createApp({
        //数据
        data() {
            return {
                title: "使用双大括号{{ }}表达式,实现文本插值",
                userInfo: {
                    userId: 1,
                    userName: "pan_junbiao的博客",
                    blogName: "您好,欢迎访问 pan_junbiao的博客",
                    blogUrl: "https://blog.csdn.net/pan_junbiao"
                }
            }
        }
        //使用 mount() 方法,装载应用程序实例的根组件
    }).mount('#app'); 
</script>

执行结果:

1.2 使用表达式

在双大括号{{ }}标签中进行数据绑定时,标签中可以是一个 JavaScript 表达式。这个表达式可以是常量或者变量,也可以是常量、变量、运算符组合而成的式子。表达式的值是其运算后的结果。例如:在双大括号{{ }}标签中使用表达式,代码如下:

<!-- 表达式:计算 -->
<p>{{ num1 * num2}}</p>

<!-- 表达式:字符串大写函数 -->
<p>{{ str.toUpperCase() }}</p>

<!-- 表达式:自定义的方法 -->
<p>{{ calculator(num1,num2) }}</p>

【实例】在双大括号{{ }}标签中,使用 JavaScript 表达式。

<body>
    <div id="app">
        <h3>{{title}}</h3>
        <p>博客信息:{{userInfo.blogName}}</p>
        <p>博客地址:{{userInfo.blogUrl}}</p>

        <!-- 表达式:计算 -->
        <p>{{ num1 * num2}}</p>

        <!-- 表达式:字符串截取函数 -->
        <p>{{ userInfo.blogName.substr(7) }}</p>

        <!-- 表达式:自定义方法 -->
        <p>{{ calculator(num1,num2) }}</p>
    </div>
</body>

<!-- 引入 Vue 框架 -->
<script src="../js/vue.global.js"></script>

<script type="text/javascript">
    // 使用 Vue.createApp 函数创建一个应用程序实例
    const vueApp = Vue.createApp({
        //数据
        data() {
            return {
                title: "在双大括号{{ }}标签中,使用 JavaScript 表达式",
                userInfo: {
                    blogName: "您好,欢迎访问 pan_junbiao的博客",
                    blogUrl: "https://blog.csdn.net/pan_junbiao"
                },
                num1: 10,
                num2: 20
            }
        },
        //方法
        methods: {
            calculator: function (a, b) {
                return a + b;
            }
        }
        //使用 mount() 方法,装载应用程序实例的根组件
    }).mount('#app'); 
</script>

执行结果:

1.3 解决页面闪烁问题

使用双大括号{{ }}标签进行数据绑定时,有时会因为页面加载延时,而产生闪烁问题。

解决方法:可以使用 v-cloak 指令。

v-cloak 指令可以隐藏未编译的 Mustache 标签直到实例准备完毕,否则在渲染页面时,有可能用户会先看到 Mustache 标签,然后看到编译后的数据。

详细解决方法,请浏览本博客的文章:《Vue的 v-cloak 指令:解决页面闪烁问题》

2、v-text 指令:文本插值

v-text 指令用于 HTML 的文本插值,实现的效果与双大括号{{ }}标签类似。语法格式如下:

<p v-text="message"></p>

 同样的在 v-text 指令中也支持使用 JavaScript 表达式。代码如下:

<!-- 表达式:计算 -->
<p v-text="num1 * num2"></p>

<!-- 表达式:字符串大写函数 -->
<p v-text="str.toUpperCase()"></p>

<!-- 表达式:自定义方法 -->
<p v-text="calculator(num1,num2)"></p>

【实例】使用 v-text 指令和表达式,为 HTML 标签绑定数据。

<body>
    <div id="app">
        <h3 v-text="title"></h3>
        <p v-text="userInfo.blogName"></p>
        <p v-text="userInfo.blogUrl"></p>

        <!-- 表达式:计算 -->
        <p v-text="num1 * num2"></p>

        <!-- 表达式:字符串截取函数 -->
        <p v-text="userInfo.blogName.substr(7)"></p>

        <!-- 表达式:自定义方法 -->
        <p v-text="calculator(num1,num2)"></p>
    </div>
</body>

<!-- 引入 Vue 框架 -->
<script src="../js/vue.global.js"></script>

<script type="text/javascript">
    // 使用 Vue.createApp 函数创建一个应用程序实例
    const vueApp = Vue.createApp({
        //数据
        data() {
            return {
                title: "使用 v-text 指令和表达式",
                userInfo: {
                    blogName: "您好,欢迎访问 pan_junbiao的博客",
                    blogUrl: "https://blog.csdn.net/pan_junbiao"
                },
                num1: 10,
                num2: 20
            }
        },
        //方法
        methods: {
            calculator: function (a, b) {
                return a + b;
            }
        }
        //使用 mount() 方法,装载应用程序实例的根组件
    }).mount('#app'); 
</script>

执行结果:

3、v-html 指令:插入HTML文本

如果要输出真正的 HTML 内容,需要使用 v-html 指令。语法格式如下:

<p v-html="message"></p>

【实例】使用 v-html 指令,输出 HTML 内容。

<body>
    <div id="app">
        <p v-html="title"></p>
        <p v-html="blogName"></p>
        <p v-html="blogUrl"></p>
    </div>
</body>

<!-- 引入 Vue 框架 -->
<script src="../js/vue.global.js"></script>

<script type="text/javascript">
    // 使用 Vue.createApp 函数创建一个应用程序实例
    const vueApp = Vue.createApp({
        //数据
        data() {
            return {
                title: "<h3>使用 v-html 指令,输出 HTML 内容</h3>",
                blogName: "<h3 style='color:red'>您好,欢迎访问 pan_junbiao的博客</h3>",
                blogUrl: "<h3 style='color:blue'>https://blog.csdn.net/pan_junbiao</h3>"
            }
        }
        //使用 mount() 方法,装载应用程序实例的根组件
    }).mount('#app'); 
</script>

执行结果:

输入的 HTML 文档:

<p><h3>使用 v-html 指令,输出 HTML 内容</h3></p>
<p><h3 style="color:red">您好,欢迎访问 pan_junbiao的博客</h3></p>
<p><h3 style="color:blue">https://blog.csdn.net/pan_junbiao</h3></p>

4、v-bind 指令:绑定属性

4.1 固定属性

双大括号{{ }}标签不能应用在 HTML 属性中。如果要为 HTML 元素绑定属性,则不能直接使用文本插值的方式,而需要使用 v-bind 指令对属性进行绑定。

为 HTML 元素绑定属性的操作比较频繁。为了防止经常使用 v-bind 指令带来的烦琐,Vue.js 为该指令提供了一种简写形式“:”。

例如,为“pan_junbiao的博客”超链接设置URL和样式的完整格式如下:

<a v-bind:href="blogUrl" v-bind:class="{myLink:value}">pan_junbiao的博客</a>

简写形式如下:

<a :href="blogUrl" :class="{myLink:value}">pan_junbiao的博客</a>

【实例】使用 v-bind 指令,为超链接绑定URL和样式属性。

<style type="text/css">
    .myLink {
        text-decoration: none; /* 文本取消下划线 */
        cursor: pointer;       /* 鼠标光标为手型*/
        color: #0066ff;
        font-size: 26px;
    }
</style>

<body>
    <div id="app">
        请点击博客链接:<a v-bind:href="blogUrl" v-bind:title="blogName" v-bind:class="{myLink:value}">{{blogName}}</a>
    </div>
</body>

<!-- 引入 Vue 框架 -->
<script src="../js/vue.global.js"></script>

<script type="text/javascript">
    // 使用 Vue.createApp 函数创建一个应用程序实例
    const vueApp = Vue.createApp({
        //数据
        data() {
            return {
                blogName: "pan_junbiao的博客",
                blogUrl: "https://blog.csdn.net/pan_junbiao",
                value: true
            }
        }
        //使用 mount() 方法,装载应用程序实例的根组件
    }).mount('#app'); 
</script>

执行结果:

4.2 动态属性

从 Vue 2.6.0 版本开始,指令的参数可以是动态参数,即将中括号括起来的表达式作为指令的参数。如法如下:

指令:[表达式]

使用动态属性的示例代码如下:

<img v-bind:[attr]="imageSrc">

【实例】使用 v-bind 指令和动态属性,为超链接绑定URL和样式属性。

<style type="text/css">
    .myLink {
        text-decoration: none; /* 文本取消下划线 */
        cursor: pointer;       /* 鼠标光标为手型*/
        color: #0066ff;
        font-size: 26px;
    }
</style>

<body>
    <div id="app">
        请点击博客链接:<a v-bind:[attr1]="blogUrl" v-bind:[attr2]="blogName" v-bind:[attr3]="{myLink:value}">{{blogName}}</a>
    </div>
</body>

<!-- 引入 Vue 框架 -->
<script src="../js/vue.global.js"></script>

<script type="text/javascript">
    // 使用 Vue.createApp 函数创建一个应用程序实例
    const vueApp = Vue.createApp({
        //数据
        data() {
            return {
                blogName: "pan_junbiao的博客",
                blogUrl: "https://blog.csdn.net/pan_junbiao",
                value: true,
                attr1:'href',
                attr2:'title',
                attr3:'class'
            }
        }
        //使用 mount() 方法,装载应用程序实例的根组件
    }).mount('#app'); 
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python_PyQtGraph 学习笔记(十一)】基于ImageExporter更改导出图片的大小

基于ImageExporter更改导出图片的大小 前言正文1、ImageExporter 类介绍1.1 ImageExporter 类特点1.2 ImageExporter 类用法2、示例代码3、遇到的问题前言 在 基于PyQtGraph设置槽函数,实现保存图片到本地的功能 一文中我们成功地将 PyQtGraph 绘制的图形以图片形式保存到本地…

ChatGPT与Discord的完美结合——团队协作的得力助手

本文将教你如何集成Discord Bot&#xff0c;助力团队在工作中实现更高效的沟通与协作。通过充分发挥ChatGPT的潜力&#xff0c;进一步提升工作效率和团队协作能力。无需编写任何代码即可完成本文所述的操作&#xff0c;进行个性化定制只需对参数进行微调即可。 方案介绍 如果在…

【Python系列】中位数计算

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

鸿蒙开发5.0【基于AVCodecKit】音视频解码及二次处理播放

1&#xff1a;场景描述 场景&#xff1a;基于VideoCoder的音视频解码及二次处理播放。 首先导入选择器picker模块&#xff0c;使用PhotoViewPicker方法拉起图库选择视频文件&#xff0c;将视频文件传递到native侧使用Demuxer解封装器进行解封装&#xff0c;再使用OH_VideoDec…

Yolov8:模型部署到安卓端

1. 项目准备 1.1 先安装JDK和Android studio &#xff08;1&#xff09;JDK下载&#xff1a; 官网站&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 同意协议后&#xff0c;下载相应版本的JDK 我这里没有下载JDK21版的&a…

作品集图片美化处理网站推荐

今天要做作品集的时候发现单一的截屏很单调&#xff0c;想着看能不能添加一些边框之类的元素使图片更加精美有活力&#xff0c;于是就找到了一个个人认为非常好用的网站镜头 - 创建惊人的模型 (shots.so)&#xff0c;它利用的是ai算法&#xff0c;使用起来非常便捷&#xff0c;…

亚马逊店铺自养号测评:安全可控的引流新策略全解析

亚马逊作为全球最大的电商平台之一&#xff0c;吸引了无数卖家加入其平台&#xff0c;争夺市场份额。然而&#xff0c;新店如何在众多竞争对手中脱颖而出&#xff0c;实现引流和销售的快速增长&#xff0c;成为了卖家们亟待解决的问题。本文珑哥将和大家探讨亚马逊新店引流的关…

浅析Thermo-Calc软件在合金热处理工艺中的应用

Thermo-Calc软件是世界公认的最好的最全面的多元体系热力学与相图计算软件&#xff0c;具备通用、计算灵活的特点&#xff0c;被广泛应用于钢铁、有色金属、核燃料、高熵合金等多领域的材料成分设计优化、工艺过程的设计优化、缺陷和问题的分析等过程中&#xff0c;是目前国内外…

焊工安全操作规范

1、焊工作业人员必须经专业安全技术培训考试合格&#xff0c;发给许可证后&#xff0c;持证上岗操作。明火作业必须履行审批手续。 2、工作前应认真检查工具、设备是否完好&#xff0c;焊机的外壳是否可靠地接地。焊机的修理应由电气保养人员进行&#xff0c;其他人员不得拆修…

Maven-07.依赖管理-依赖范围

一.依赖范围 一个项目依赖的jar包默认情况下可以在任何地方使用。这里的任何地方是指在main文件夹范围内作用&#xff0c;test文件夹范围内作用和package打包进去都可以。 依赖的范围可以通过scope标签进行调整&#xff0c; scope的值和其作用范围以及代表性jar包范例如上表所…

渗透必备:BurpSuite

一、介绍 BurpSuite是渗透测试、漏洞挖掘以及Web应用程序测试的最佳工具之一&#xff0c;是一款用于攻击web 应用程序的集成攻击测试平台&#xff0c;可以进行抓包、重放、爆破&#xff0c;包含许多工具&#xff0c;能处理对应的HTTP消息、持久性、认证、代理、日志、警报。 …

电力领域知识图谱:赋能电力智能发展的关键技术

电力领域知识图谱&#xff1a;赋能电力智能发展的关键技术 前言电力领域知识图谱 前言 电力领域知识图谱作为一项新兴技术&#xff0c;在电力系统中具有重要的应用价值。它能够以结构化的方式刻画电力系统中的各种概念、实体、事件及其间的关系&#xff0c;为电力人工智能的发…

淮北农商银行年报与审计报告数据不合,盈利能力与资产质量承压

撰稿|芋圆 来源|贝多财经 7月24日&#xff0c;国家金融监督管理总局发布《国家金融监督管理总局安徽监管局关于淮北农村商业银行股份有限公司&#xff08;以下简称“淮北农商行”或“淮北农商银行”&#xff09;吸收合并安徽濉溪农村商业银行股份有限公司的批复》。 内容显示…

SM4前后端加密和解密

一&#xff1a;前端vue 二&#xff1a;后端Java 三&#xff1a;详细 3.1maven添加 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15to18</artifactId><version>1.66</version> </dependency> <…

合宙Air700ECQ硬件设计手册——主要性能

Air700ECQ是一款基于移芯EC716E平台设计的LTE Cat 1无线通信模组。支持移动双模FDD-LTE/TDD-LTE的4G远距离无线传输技术。以极小封装&#xff0c;极高性价比&#xff0c;满足IoT行业的数传应用需求。例如共享应用场景&#xff0c;定位器场景&#xff0c;DTU数传场景等。 无论是…

IP in IP 协议

IP in IP 是一种多重IP协议&#xff0c;即&#xff1a;客户机可以发送一个IP协议内部在嵌套一个IP协议到某个特定的主机上&#xff0c;在由具体的主机作为路由进行转发的协议。 例如&#xff1a; IP in IP帧协议结构为&#xff0c;第一层为发送到IP in IP 路由主机的报文&…

引领未来教育的新工具,NUC 14 Pro 赋能智慧课堂

在追求高效、互动、个性化的教育新时代&#xff0c;传统的教学工具已难以满足现代教育的需求。华硕NUC 14 Pro应运而生&#xff0c;它以小巧的机身、强大的性能以及丰富的商用功能&#xff0c;正逐步成为重塑教育生态的重要力量。它不仅是一款教学工具&#xff0c;更是推动教育…

从bbl和overleaf版本解决Arxiv提交后缺失参考文献Citation on page undefined on input line

debug 食用指南&#xff1a;框架/语言&#xff1a;问题描述&#xff1a;解决方案&#xff1a;问题原因&#xff1a;版本解决方案&#xff1a; 安利时间&#xff1a; 食用指南&#xff1a; 框架使用过程中的问题首先要注意版本发布时间造成方法弃用 当你在CSDN等网站查找不到最…

家电触摸感应芯片/4键触控检测IC-VK36Q4 DFN10L超小封装触摸芯片

产品品牌&#xff1a;永嘉微电/VINKA 产品型号&#xff1a;VK36Q4 封装形式&#xff1a;DFN10L 概述 VK36Q4具有4个触摸按键&#xff0c;可用来检测外部触摸按键上人手的触摸动作。该芯片具有较 高的集成度&#xff0c;仅需极少的外部组件便可实现触摸按键的检测。 提供了4路…

jmeter中的json提取器

将响应结果提取作为变量 线程组->添加->后置处理器->json提取器 可以通过debug 调试器查看有没有提取出来 线程组->添加->取样器->debug sampler&#xff08;debug调试器&#xff09; 获取出来的响应数据。作为下一条接口的是否发送的判断内容 线程组…