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>
    
    
  • 相关阅读:
    toj 2819 Travel
    toj 2807 Number Sort
    zoj 2818 Prairie dogs IV
    zoj 1276 Optimal Array Multiplication Sequence
    toj 2802 Tom's Game
    toj 2798 Farey Sequence
    toj 2815 Searching Problem
    toj 2806 Replace Words
    toj 2794 Bus
    css截取字符
  • 原文地址:https://www.cnblogs.com/insipid/p/13850084.html
Copyright © 2011-2022 走看看