zoukankan      html  css  js  c++  java
  • Vue插值语法

    Mustache

    如何将data中的文本数据,插入到HTML中呢?

    之前文章中已经讲过,可以通过Mustache语法(也就是双大括号)。
    Mustache:胡须,因为左右两个大括号像两个胡须一样,这是国外人的翻译,在国内也可以叫双大括号
    我们可以像下面这样来使用,并且数据是响应式的。

    <div id="app">
    	<h1>{{message}}</h1>
    </div>
    
    <script type="text/javascript">
    	var vue = new Vue({
    		el:'#app',
    		data:{
    			message:'simple'
    		}
    	})
    </script>
    

    v-once

    在某些情况下,我们可能不希望界面随意的跟随改变,这个时候,我们就可以使用一个Vue命令

    v-once:

    • 该指令后面不需要跟任何表达式(比如v-for后面是有跟表达式的)
    • 该指令表示元素和组件(组件后面会写)只渲染一次,不会随着数据的改变而改变。

    代码如下:

    <div id="app">
    	<h1>{{message}}</h1>
    	<h1 v-once>{{message}}</h1>
    </div>
    
    <script type="text/javascript">
    	var vue = new Vue({
    		el:'#app',
    		data:{
    			message:'hello world'
    		}
    	})
    </script>
    

    v-html

    某些情况下,我们从服务器请求的数据本身就是一个HTML代码

    如果我们直接通过{{}}来输出,会将HTML代码也一起输出,但是我们可能希望的是按照HTML格式进行解析,并且显示对应的内容。
    如果我们希望解析出HTML展示
    可以使用v-html指令,在该指令后面往往会跟上一个string类型,会将stringhtml解析出来并且进行渲染

    <div id="app">
    	<h1>{{link}}</h1>
    	<h1 v-html="link"></h1>
    </div>
    
    <script type="text/javascript">
    	var vue = new Vue({
    		el:'#app',
    		data:{
    			link:'<a href="https://www.baidu.com">百度一下</a>'
    		}
    	})
    </script>
    

    v-text

    v-text作用和Mustache比较相似,都是用于数据显示在界面中,v-text通常情况下,接受一个string类型

    <div id="app">
    	<h1 v-text="name"></h1>
    	<!-- 如果使用了v-text指令,那么我们在标签中写入的内容将会被覆盖,所以它并不是特别灵活 -->
    	<!-- <h1 v-text="name">,你好</h1> -->
    	<h1>{{name}}</h1>
    </div>
    
    <script type="text/javascript">
    	var vue = new Vue({
    		el:'#app',
    		data:{
    			name:'simple'
    		}
    	})
    </script>
    

    v-pre

    v-pre用于跳过这个元素和它之元素的编译过程,用于显示原本的Mustache语法,比如下面的代码:

    • 第一个h1元素中的内容会被编译解析出来
    • 第二个h1元素中会直接显示{{message}}
    <div id="app">
    	<h1>{{message}}</h1>
    	<h1 v-pre>{{message}}</h1>
    </div>
    
    <script type="text/javascript">
    	var vue = new Vue({
    		el:'#app',
    		data:{
    			message:'simple'
    		}
    	})
    </script>
    

    v-cloak

    在某些情况下, 我们浏览器可能会直接显示出未编译的Mustache标签。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<script src="../vue.js"></script>
    		<style>
    			[v-cloak]{
    				display: none;
    			}
    		</style>
    	</head>
    	<body>
    		<!-- v-once:当页面加载完只把我的数据第一次展示出来就可以了,后面数据改变不改变页面数据 -->
    		<div id="app">
    			<h1 v-cloak>{{message}}</h1>
    		</div>
    		<script type="text/javascript">
    			// 延时1秒钟加载数据
    			// 在vue解析之前,div中有一个属性v-cloak
    			// 在vue解析之后,div中没有属性v-cloak
    			setTimeout(function(){
    				var vue = new Vue({
    					el:'#app',
    					data:{
    						message:'simple'
    					}
    				})
    			},1000)
    		</script>
    	</body>
    </html>
    
    
  • 相关阅读:
    使用MFC界面库LibUIDK制作超酷界面
    使用WSH和WMI实现定时记录系统CPU和内存使用率
    关于CreateFileMapping的问题
    360对NSIS误报Malware.QVM06.GEN的解决办法
    win2003实现单用户远程登录
    All bytes must be within the maximum size specified by CreateFileMapping
    解决在VS2005中“当前不会命中断点。源代码与原始版本不同”的问题
    static library中能不能带资源
    HUDSON_HOME
    USB GUID查找
  • 原文地址:https://www.cnblogs.com/insipid/p/13850084.html
Copyright © 2011-2022 走看看