Vue 使用基于 HTML 的模板语法,允许以声明方式将渲染的 DOM 绑定到底层组件实例的数据。所有 Vue 模板都是语法有效的 HTML,可由符合规范的浏览器和 HTML 解析器进行解析。
在底层,Vue 将模板编译为高度优化的 JavaScript 代码。结合响应式系统,Vue 可以智能地找出需要重新渲染的最少组件数量,并在应用程序状态发生变化时应用最少的 DOM 操作。
文本插值
数据绑定的最基本形式是使用“Mustache”语法(双花括号)进行文本插值:
<span>Message: {{ msg }}</span>
mustache 标签将被替换为相应组件实例msg
的属性值。每当属性发生变化时,它也将被更新。msg
原始 HTML
双括号将数据解释为纯文本,而不是 HTML。为了输出真正的 HTML,您需要使用v-html
指令:
<p>Using text interpolation: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>
使用文本插值:这应该是红色。
使用 v-html 指令:这应该是红色的。
v-html
看到的属性称为指令。指令以 为前缀,表示它们是 Vue 提供的特殊属性,可能已经猜到了,它们将特殊的反应行为应用于渲染的 DOM。在这里,基本上是在说“让此元素的内部 HTML 与当前活动实例上的属性v-
保持同步。 ”rawHtml
的内容span
将被替换为属性的值rawHtml
,并解释为纯 HTML - 数据绑定将被忽略。请注意,不能使用它v-html
来编写模板部分,因为 Vue 不是基于字符串的模板引擎。相反,组件是 UI 重用和组合的基本单元。