vue的插值操作

news/2024/7/10 0:24:49 标签: vue

插值操作:将vue实例中data里面的某个值,插到页面DOM元素上进行显示。 并改变data值可以动态改变显示。

1、Mustache

1.Mustache (胡子/胡须)
可以通过Mustache语法(也就是双大括号{{}})来进行插值操作;
数据绑定最常见的形式就是使用“Mustache”语法的文本插值
2.Mustache语法,不仅仅可以直接写变量,也可以写简单的表达式

 <div id="app">
        <h2>{{message}}</h2>
        <h2>{{firstName + lastName}}</h2>
        <h2>{{firstName + ' ' + lastName}}</h2>
        <h2>{{firstName}} {{lastName}}</h2>
        <h2>{{counter *  2}}</h2>
    </div>
<script src="../js/vue.js"></script>
    const app = new Vue({
        el: "#app",
        data: {
            message: '你好啊!',
            firstName: 'koby',
            lastName: 'bryant',
            counter: 100
        }
    })

2、指令v-once

(1)作用:该指令表示元素和组件只会被渲染一次,之后不会随着数据的改变而改变;
即插值后,该指令所在的DOM元素中的插值内容只显示最开始的数据,不会变化。
(2)使用场景:在某些情况下,我们可能不希望界面随意的跟随改变,这个时候指令v-once,该指令后面不需要跟任何表达式,直接放上去就可以了。

 <div id="app">
        <h2>{{message}}</h2>
        <h2 v-once>{{message}}</h2>
    </div>
    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: "#app",
            data: {
                message: '你好啊!'
            }
        })
    </script>

3、指令v-html

(1)作用:可以将string内容进行解析,以html的形式展示出来,进行渲染。
(2)使用情况:
某些情况下,我们从服务器请求到的是一个HTML代码(带标签),如果我们直接通过{{ }}来输出,会将HTML代码以字符串的格式插入到页面。如果我们希望将内容按照HTML格式进行解析,则可以用v-html指令

<div id="app">
   <h2>{{url}}</h2>
   <h2 v-html="url"></h2>
</div>
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: "#app",
        data: {
            message: '你好啊!',
            url: '<a href="http://www.baidu.com">百度一下</a>'
            //数据可能带标签,也可能是其他形式,则正常展示出来全是字符串;
            //v-html指令:对url进行解析,以html的形式来展示url,即为a标签
        }
    })
</script>

在这里插入图片描述
4、指令v-text

(1)作用:与Mustache比较相似,都是用于将数据显示在界面中;
(2)区别:Mustache后面可以任意拼接其他内容;指令v-text会将后面拼接的内容给覆盖掉;

 <div id="app">
    <h2>{{message}}朋友</h2> // 显示:你好啊!朋友
    <h2 v-text="message">朋友</h2> // 显示:你好啊!(朋友)被 (v-text的值你好啊!)覆盖
 </div>
 <script src="../js/vue.js"></script>
 <script>
     const app = new Vue({
         el: "#app",
         data: {
             message: '你好啊!'
         }
     })
 </script>

5、指令v-pre

用于跳过该元素和它子元素的编译过程,显示原本的内容。
vue实例不去解析该元素中的内容,不按照data的内容显示数据,显示原本内容;

<div id="app">
   <h2>{{message}}</h2> // 显示:你好啊!
   <h2 v-pre>{{message}}</h2> // 显示:{{message}}
</div>
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: "#app",
        data: {
            message: '你好啊!'
        }
    })
</script>

6、指令v-cloak

(1)作用:可以使用 v-cloak 指令设置样式,这些样式会在 Vue 实例编译结束时,从绑定的 HTML 元素上被移除。通常是和CSS的display:none结合使用。
(2)使用场景:在执行vue实例前,如果当网络较慢,网页还在加载 Vue.js ,而导致 Vue 来不及渲染,这时页面就会显示出 Vue 源代码, 等执行vue实例后会再变成data对应的内容,这样体验感就不太好。我们可以使用 v-cloak 指令来解决这一问题。
(3)总结:在vue解析前指令v-cloak会起作用,设置内容不显示,在vue解析后v-cloak不会起作用,则显示出data中对应的数据。 (则不显示html中原本的内容,直接显示出解析后的数据)

<style>
	[v-cloak] {
	  display: none;
	}
</style>
<div id="app" v-cloak>
     <h2>{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
    // 在vue解析之前,div中有一个属性v-cloak,设置一个样式display:none,让{{message}}不显示出来;
    // 在vue解析之后,div中没有属性v-cloak,则属性样式无作用,则显示解析的内容;
    setTimeout(function () {
        const app = new Vue({
            el: "#app",
            data: {
                message: '你好啊!'
            }
        })
    }, 1000)
</script>

http://www.niftyadmin.cn/n/1556611.html

相关文章

CDH的 hive 整合 hbase

总帖&#xff1a;CDH 6系列&#xff08;CDH 6.0、CHD6.1等&#xff09;安装和使用 1.hbase与hive哪些版本兼容&#xff1f; hive0.90与hbase0.92是兼容的&#xff0c;早期的hive版本与hbase0.89/0.90兼容&#xff0c;不需要自己编译。 hive1.x与hbase0.98.x或则更低版…

Vue动态绑定属性—指令v-bind

1、v-bind指令的介绍和基本使用 (1)作用&#xff1a;动态绑定属性 除了内容需要动态来实现之外&#xff0c;有时候元素的属性我们也希望能够动态来改变 比如可以动态绑定a元素的href属性&#xff0c;img的src属性等等。 (2)与插值操作的对比&#xff1a;插值操作的主要作用是将…

JS中变量数据类型的检测

基本数据类型&#xff1a;Number、String、Boolean、Null、Undefined 引用数据类型&#xff1a;Object 1、typeof (1)作用&#xff1a;返回数据类型的字符串表达式 (2)局限性&#xff1a;检测类型太少&#xff0c;不能检测出object的具体类型&#xff0c;如下不能判断null,对象…

高阶组件之属性代理

新组件类继承子React.component类&#xff0c;对传入的组件进行一系列操作&#xff0c;从而产生一个新的组件&#xff0c;达到增强组件的作用 操作props访问ref抽取state封装组件废话不多说&#xff0c;直接上代码&#xff1a; Tabbar.js import React, { Component } from &qu…

对是否要用Linux的思考

原文链接&#xff1a;https://www.cun-xu.cn/index.p... 这篇文章是今天才决定要写的&#xff0c;Rocken到目前为止使用Linux的时间才半年&#xff0c;所以一些认识会很浅薄。所以是否要写这篇文章也犹豫了好几天&#xff0c;我究竟有没有资格来写这篇文章。今天是开学前最后一…

mybatis批量插入数据到Oracle中的两种方式

2019独角兽企业重金招聘Python工程师标准>>> 第一种&#xff1a; <insert id"addList" parameterType"java.util.List" useGeneratedKeys"false"> INSERT ALL <foreach item"item" index"in…

JS数组的高级用法

1、forEach (1)作用&#xff1a;对数组的每个元素执行一次给定的函数。 (2)参数&#xff1a;回调函数(处理的当前元素&#xff0c;索引&#xff0c;当前操作的数组)、this的值(可选) (3)返回值&#xff1a;undefined let arr [1, 2, 3]; let sum 0; arr.forEach(function (va…

ansible软件2

常用软件安装及使用目录 ansible使用1 第1章 copy模块 1.1 创建文件及写入内容 1. [rootm01 scripts]# ansible oldboy -m copy -a "contentwo shi hao ren dest/machangwei/11" 2. [rootweb02 machangwei]# cat 11 3. wo shi hao ren[rootweb02 machangwei]# …