vue模板语法

目录

模板,组件中template的内容?

1.1. 文本

//使用双大括号形式
<span>Message: {{ msg }}</span>

//使用v-once会只执行一次,不会被更新
<span v-once>这个将不会改变: {{ msg }}</span>

1.2. 原始HTML

双大括号会将数据解释为纯文本,如果想要输出纯html则需要使用v-html

//rawnhtml内容:
<sapn > 样式生效则为红色 </span>

//两种不同的使用方法
<p>Using mustaches: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>


使用双大括号

<sapn > 样式生效则为红色 </span>

使用v-html指令,文字显示为红色

样式生效则为红色  

注意,使用v-html的时候要注意xss攻击,只对可信内容使用v-html

1.3. 特性

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

//使用v-bind 在html的特性上
<div v-bind:></div>

//下面这种写法,是不存在的
<div ></div>

1.4. 使用js表达式

支持单个表达式

{{ number + 1 }}

{{ ok ? 'YES' : 'NO' }}

{{ message.split('').reverse().join('') }}

//带有变量的字符串拼接
<div v-bind:></div>

下面列子不会生效

<!-- 这是语句,不是表达式 -->
{{ var a = 1 }}

<!-- 流控制也不会生效,请使用三元表达式 -->
{{ if (ok) { return message } }}

2. 指令

指令 (Directives) 是带有 v- 前缀的特殊属性

3. 缩写

3.1 v-bind 缩写

<!-- 完整语法 -->
<a v-bind:href="url">...</a>

<!-- 缩写 -->
<a :href="url">...</a>

3.2. v-on 缩写

<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>

<!-- 缩写 -->
<a @click="doSomething">...</a>