一起学Vue之模板语法


概述

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。

普通文本

数据绑定最常见的形式就是使用“Mustache[小胡子]”语法 (双大括号) 的文本插值,无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。

1 <span>{{msg}}span>

通过使用 v-once 指令,执行一次性插值,当数据改变时,内容不会更新。

1 <span v-once>这个将不会改变: {{ msg }}span>

输出Html

双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令:

1 
2 <p>Using mustaches: {{ rawHtml }}p>
3 
4 <p>Using v-html directive: <span v-html="rawHtml">span>p>

注意:你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容使用插值。

特性

Mustache 语法不能作用在 HTML 特性上,遇到这种情况应该使用 v-bind 指令:

1  <div v-bind:id="dynamicId">我的ID是{{dynamicId}}div>
2 
3 <button v-bind:disabled="isButtonDisabled">Buttonbutton>

注意:如果 isButtonDisabled 的值是 null、undefined 或 false,  则 disabled 特性甚至不会被包含在渲染出来的