插值表达式的使用
- 将 data 中的文本数据,插入到HTML中可以通过 Mustache 语法(也就是双大括号),数据是响应式的
<div id="app">
<h2>Hello {{message}}</h2>
<h2>{{firstName}} {{lastName}}</h2>
<h2>{{number * 2}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'World',
firstName: 'Lan',
lastName: 'Duo',
number: 100
}
})
</script>
v-once
- 该指令后面不需要跟任何表达式
- 该指令表示元素和组件只渲染一次,不会随着数据的改变而改变。
<h2 v-once>{{message}}</h2>
v-html
- 我们从服务器请求到的数据本身就是一个HTML代码直接通过{{}}来输出,会将HTML代码也一起输出。
- 该指令后面往往会跟上一个string类型
- 会将string的html解析出来并且进行渲染
<div id="app">
<div>{{link}}</div>
<div v-html="link"></div>
<!-- v-html 将html元素直接渲染到页面 -->
</div>
<script src="../../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
link: '<a href="http://www.baidu.com">百度一下</a>'
}
})
</script>
v-text
- 作用和 Mustachez 比较相似:都是用于将数据显示在界面中
- 通常情况下,接受一个string类型
<h2 v-text="message"></h2>
v-pre
- 用于跳过这个元素和它子元素的编译过程,用于显示原本的 Mustache 语法
- 如果我们想在页面上显示 {{}} 时使用
- 第一个h2元素中的内容会被编译解析出来对应的内容
- 第二个h2元素中会直接显示{{message}}
<h2>{{message}}</h2>
<h2 v-pre>{{message}}</h2>
v-cloak(cloak: 斗篷)
- 此指令可以解决使用插值表达式页面闪烁问题
- 如果网速慢,而该标签内容是变量没有请求响应回来的时候,页面上先不显示该标签(vue给该标签加了css样式),当响应回来的时候改标签默认将css样式去除。
<style>
[v-cloak] {
display: none;
}
</style>
</head>
<body>
<div id="app">
<h2 v-cloak>{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
setTimeout(() => {
const app = new Vue({
el: '#app',
data: {
message: 'Hello World'
}
})
}, 2000)
</script>