vue基础——模板语法

模板语法介绍

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

在底层的实现上,Vue将模板编译成虚拟dom渲染函数。结合响应式系统,Vue能够智能的重新计算出最少需要重新渲染多少组件,并把dom操作次数减少到最少。

如果熟悉虚拟dom并且偏爱JavaScript的原始力量,也可以不用模板,直接写渲染函数,使用可选的JSX语法。

插值——文本

数据绑定最常用的就是"Mustache"语法(双大括号)的文本差值:

Mustache标签将会被替代为数据对象msg属性上的值。无论何时,绑定的数据对象上msg属性发生了改变,插值处的内容都会更新,如下:

html

<span>Message: {
     { msg }}span>

通过使用v-once指令,你也能执行一次性的插值,当数据改变时,插值处的内容不会更新。但是这可能会影响到该节点上其他数据的绑定,如下:

html

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

插值——原始HTML

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

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

vue基础——模板语法_第1张图片

这个span的内容将会被替换成为属性值rawHtml,直接作为HTML——会忽略解析属性值中的数据绑定。注意,不能使用v-html来复合局部模板,因为Vue不是基于字符串的模板引擎。反之,对于用户界面(UI),组件更适合作为可重用和可组合的基本单位。

注意:站点上动态渲染任意的html非常危险,很容易导致XSS攻击

请只对可信内容使用HTML插值,绝对不要对用户提供的内容使用插值

插值——特性

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

html

<div v-bind:id="dynamicId">div>

在布尔特性的情况下,它们的存在即暗示为true,v-bind工作起来略有不同,在这个例子中:

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

转载于:https://www.cnblogs.com/zhanzhuang/p/9235283.html

你可能感兴趣的:(javascript,ui)