一:插值方式:vue
1:数据绑定,最多见的形式就是使用 “Mustache” 语法(双大括号)的文本插值 <span>Message: {{ msg }}</span> 经过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新api
2:属性绑定,属性插值使用v-bind指令,Mustache {{}}不能在 HTML 属性中使用,应使用 v-bind 指令
数组
3:全部的数据绑定, Vue.js 都提供了彻底的 JavaScript 表达式支持,仅限单个表达式。缓存
v-if
指令将根据表达式
seen
的值的真假来移除/插入
<p>
元素,(有点相似于visible)
v-on
指令,它用于监听 DOM 事件:
参数是监听的事件名
v-bind
表达式
过滤器函数总接受表达式的值做为第一个参数。dom
过滤器是 JavaScript 函数,所以能够接受参数:异步
{{ message | filterA('arg1', arg2) }}
这里,字符串 'arg1'
将传给过滤器做为第二个参数, arg2
表达式的值将被求值而后传给过滤器做为第三个参数,message是默认的第一个参数。函数
三:缩写:this
v-bind 缩写 : url
computed 之前的名字叫作ready是在dom加载后立刻执行的。
message
尚未发生改变,屡次访问
reversedMessage
计算属性会当即返回以前的计算结果,而没必要再次执行函数
watch
回调
v-bind:class
一个
对象,以动态地切换 class 。
active
的更新将取决于
数据属性 isActive
是否为真值 。
v-bind:class
,以应用一个 class 列表 <
div v-bind:class="[activeClass, errorClass]">
class
属性的时候,这些
类将被添加到根元素上面,这个元素上已经存在的类不会被覆盖。
绑定内联样式 v-bind:stylespa
CSS 属性名能够用驼峰式(camelCase)或短横分隔命名(kebab-case): <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
直接绑定到一个样式对象一般更好
<div v-bind:style="styleObject"></div>
v-bind:style
的数组语法能够将多个样式对象应用到一个元素上:<
div v-bind:style="[baseStyles, overridingStyles]">
v-if
vs v-show
v-if
是“真正的”条件渲染,由于它会确保在切换过程当中条件块内的事件监听器和子组件适当地被销毁和重建
v-if
也是惰性的:若是在初始渲染时条件为假,则什么也不作——直到条件第一次变为真时,才会开始渲染条件块。
相比之下, v-show
就简单得多——无论初始条件是什么,元素老是会被渲染,而且只是简单地基于 CSS 进行切换。
通常来讲, v-if
有更高的切换开销,而 v-show
有更高的初始渲染开销。所以,若是须要很是频繁地切换,则使用 v-show
较好;若是在运行时条件不太可能改变,则使用 v-if
较好。
v-show
是简单地切换元素的 CSS 属性 display
。
<template>
语法注意, v-show
不支持 <template>
语法,也不支持 v-else
。
七:列表渲染 v-for
v-for
块中,咱们拥有对父做用域属性的彻底访问权限。 v-for
还支持一个可选参数,最后一个参数为当前项的索引。
<ul id="example-2"> <li v-for="(item, index) in items"> {{ parentMessage }} - {{ index }} - {{ item.message }} </li> </ul>
也能够用 of
替代 in
做为分隔符。 <div v-for="item of items"></div>
v-for 迭代模块:也能够用带有 v-for
的 <template>
标签来渲染多个元素块
v-for 迭代对象:
v-for 迭代整数:<span v-for="n in 10">{{ n }}</span> 输出:12345678910
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
filter()
, concat()
, slice()
Vue 不能检测如下变更的数组:
vm.items[indexOfItem] = newValue 解决方法:能够用Vue.set(example1.items, indexOfItem, newValue)或example1.items.splice(indexOfItem, 1, newValue)替换
vm.items.length = newLength 解决方法:
也一样可使用 splice
:example1.items.splice(newLength)替换想要显示一个数组的过滤或排序副本,而不实际改变或重置原始数据。在这种状况下,能够建立返回过滤或排序数组的计算属性。