Vue.js基础拾遗

模版语法

插值

1、Vue.js的数据绑定形式是使用“Mustache”语法(双大括号)的形式,针对Html代码,需要使用v-html指令。

Using v-html directive:

2、Mustache语法不能作用在HTML特性上面,此时需要使用v-bind指令。

指令

1、一些指令能够接收一个“参数”,在指令名称之后以冒号表示,如v-bind

...

2、从2.6.0开始,可以用方括号扩起来的Javascript表达式作为一个指令的参数

...

这里的 attributeName 会被作为一个 JavaScript 表达式进行动态求值,求得的值将会作为最终的参数来使用。例如,如果你的 Vue 实例有一个 data 属性 attributeName,其值为 "href",那么这个绑定将等价于 v-bind:href。

同样,我们可以使用动态参数为一个动态的事件名绑定处理函数

 ... 
动态参数预期会求出一个字符串,异常情况下值为 null。这个特殊的 null 值可以被显性地用于移除绑定。任何其它非字符串类型的值都将会触发一个警告。
动态参数表达式有一些语法约束,因为某些字符,例如空格和引号,放在 HTML 特性名里是无效的。

3、修饰符(modifier)是以半角句号.指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。如.prevent修饰符告诉v-on指令对于触发的事件调用event.prevent

...

4、指令简写

v-bind指令


...


...

v-on指令


...


...

计算属性与侦听器

计算属性是和普通属性一样在模版中绑定的,只不过该属性的值涉及到一系列的计算,并不是单纯的一个属性值。

计算属性的getter函数是没有副作用(side effect)的。

计算属性VS方法

我们可以将同一个函数定义为一个方法而不是一个计算属性,两种方式的最终结果是相同的。不同的是计算属性是基于他们的依赖进行缓存的。当相关依赖不变的情况下,计算属性是直接获取缓存的结果,不需要执行函数,而方法的写法每当重新渲染时,都会被再次执行。

计算属性VS侦听属性

Vue提供了一种更通用的方式来观察和响应Vue实例上的数据变更:侦听属性,通过watch来监听属性的变化。但是通常更好的做法是使用计算属性而不是命令式的watch回调。

那么什么时候选择侦听属性更好呢?

当响应数据变化的处理是执行异步或者开销较大的操作时,使用侦听属性是有用的。

Class与Style绑定

v-bind用于classstyle时,Vue.js做了专门的增强,表达式结果的类型除了字符串之外,还可以是对象或数组。

绑定HTML Class

1、v-bind:class指令可以与普通的class属性共存。我们也可以绑定一个返回对象的计算属性,这是非常有用的模式。

2、我们可以把一个数组传给v-bind:class,以应用一个class列表。

3、当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面。这个元素上已经存在的类不会被覆盖。

绑定内联样式

1、v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用单引号括起来) 来命名.

2、直接绑定到一个样式对象通常更好,这会让模板更清晰:

3、对象语法常常结合返回对象的计算属性使用

4、当 v-bind:style 使用需要添加浏览器引擎前缀的 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应的前缀。

5、可以为 style 绑定中的属性提供一个包含多个值的数组,常用于提供多个带前缀的值。这样只会渲染数组中最后一个被浏览器支持的值。

条件渲染

1、v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。也可以用 v-else 添加一个“else 块”。v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面,否则它将不会被识别。

2、在