Vue 模板语法

阅读数:81 评论数:0

跳转到新版页面

分类

html/css/js

正文

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

1. 插值

(1) 文本

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

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

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

通过v-once指令, 也能执行一次性地插值, 当数据改变时, 据条件需处的内容不会更新.

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

(2) 原始HTML

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

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

但注意, 动态渲染任意html可能会非常危险, 因为它很容易导致xss攻击.

(3) 特性

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

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

对于布尔特性, v-bind工作起来略有不同

<button v-bind:disabled="isButtonDisabled">Button</button>

如果isButtonDisabled的值是null, undefined或false, 则disabled特性甚至不会被包含在渲染出来的<button>元素中.

(4) 使用JavaScript表达式

{{ number + 1 }}
 
{{ ok ? 'YES' : 'NO' }}
 
{{ message.split('').reverse().join('') }}
 
<div v-bind:id="'list-' + id"></div>

这些表达式会在所属Vue实例的数据作用域下作为JavaScript被解析, 有个限制就是, 每个绑定都只能包含单个表达式.

2. 指令

指令是带有v-前缀的特殊特性, 指令的职责是, 当表达式的值改变时, 将其产生的连带影响, 响应式地作用于DOM.

(1) 参数

一些指令能够接收一个"参数", 在指令名称之后以冒号表示.

<a v-bind:href="url">...</a>

(2) 动态参数

可以用方括号括起来的JavaScript表达式作为一个指令的参数:

<a v-bind:[attributeName]="url"> ... </a>

这里的attributeName会被作为一个JavaScript表达式进行动态求值, 求得的值将会作为最终的参数来使用.

(3) 修饰符

修饰符是以半角句号指明的特殊后缀, 用于指出一个指令应该以特殊方式绑定.

3. 缩写

<!-- 完整语法 -->
<a v-bind:href="url">...</a>
 
<!-- 缩写 -->
<a :href="url">...</a>
 
<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>
 
<!-- 缩写 -->
<a @click="doSomething">...</a>



相关推荐

1、安装依赖 npm install svg-sprite-loader --save-dev 2、配置build文件夹中的webpack.base.conf.js 3、在src/component

在列表渲染时使用key属性 当Vue.js用v-for正在更新已渲染过的元素列表时,它默认用&ldquo;就地复用&rdquo;策略,如果数据项的顺序被改变,Vue将不会移动D

一、vue.js devtools开发工具的使用 1、安装 在chrome或firefox浏览器的扩展插件仓库里搜索vue devtool。 2、debugger的使用 假设我们想调试App.vue这

在一些情况下,我们可能会需要对一个prop进行双向绑定,但它破坏了单向数据流。 在vue 2.3.0,重新引入了.sync修饰符,这是一个语法糖。 例子: <

&lt;div id="app"&gt; &lt;div v-on:click="dodo"&gt;

在登陆页的mouted生命周期方法中,添加 <pre class

ref被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的$refs对象上。如果在普通的DOM元素上使用,引用指向的就是DOM元素,如果用在子组件上,引用就指向组件实例。 <!-- `vm.$

在使用Vue中经常看到HTML中有标签属性前面添加了“:”,有些没有。 其实是v-bind的缩写。 v-bind 缩写: ‘:’ 用法:动态绑定一个或多个特性,或一个组件prop到表达式。在绑定cl

module.exports = { "plugins": { "postcss-import": {},

一、概述 Vuex是一个专门为Vue.js应用程序开发的全局状态管理功能。它采用集中式存储管理应用的所有组件的状态, 并以相应的规则保证状态以一种可预测的方式发生变化。 每一个Vuex应用的核心就是s