Vue 的插值语法

插值表达式的使用

  • 将 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

  • 该指令后面不需要跟任何表达式
    • 比如v-for后面是由跟表达式的
  • 该指令表示元素和组件只渲染一次,不会随着数据的改变而改变。
 <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>
posted @ 2020-03-04 12:20  懒惰ing  阅读(1086)  评论(0编辑  收藏  举报