ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue插值语法

2020-10-21 03:01:26  阅读:183  来源: 互联网

标签:el Vue 插值 语法 vue new message data


目录

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>

标签:el,Vue,插值,语法,vue,new,message,data
来源: https://www.cnblogs.com/insipid/p/13850084.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有