一:插值方式: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)替換想要顯示一個數組的過濾或排序副本,而不實際改變或重置原始數據。在這種狀況下,能夠建立返回過濾或排序數組的計算屬性。