1.定義
vue是一款友好的多用途高性能的漸進(jìn)式j(luò)avascript框架
2. 指令
- v-bind:
- v-for 可以綁定數(shù)組的數(shù)據(jù)來渲染一個項(xiàng)目列表
- v-if 條件控制
- v-show
- v-on: (@) 添加事件監(jiān)聽
- v-model 表單輸入應(yīng)用狀態(tài)之間的雙向數(shù)據(jù)綁定
- v-once 執(zhí)行一次的插值,當(dāng)數(shù)據(jù)改變時,插值處不會更新
- v-html 輸出html代碼
data
- 1.當(dāng)一個vue實(shí)例被創(chuàng)建時,他將data對象中的所有屬性加入到Vue的響應(yīng)式系中,當(dāng)這些屬性的值發(fā)生改變時,視圖將會產(chǎn)生"響應(yīng)",既匹配更新為新的值
- 2.當(dāng)這些數(shù)據(jù)改變是,視圖會進(jìn)行重新渲染, 注意:只有當(dāng)實(shí)例創(chuàng)建時就已經(jīng)存在于data中的屬性才是響應(yīng)式的.
-3. Object.freeze() 可以阻止響應(yīng)追蹤
實(shí)例屬性和方法
- $data
- $el === document.getElementById("#id")
- $watch 方法
聲明周期
定義
每個vue 實(shí)例被創(chuàng)建時都需要經(jīng)過一系列的初始化過程.這個過程中會運(yùn)次那個生命周期的鉤子函數(shù).
- 注意: 不要在選項(xiàng)屬性或者回調(diào)上使用箭頭函數(shù).
watch 和computed 和methods
- computed 和methods 用法和區(qū)別
computed是有緩存的(假設(shè)我們有一個性能開銷比較大的計(jì)算屬性 A,它需要遍歷一個巨大的數(shù)組并做大量的計(jì)算。然后我們可能有其他的計(jì)算屬性依賴于 A 。如果沒有緩存,我們將不可避免的多次執(zhí)行 A 的 getter)
如果你不希望有緩存,請用方法來替代
- computed和watch 用法和區(qū)別
- 當(dāng)你有一些數(shù)據(jù)需要隨著其它數(shù)據(jù)變動而變動時用computed
- 數(shù)據(jù)變化時執(zhí)行異步或開銷較大的操作時,這個方式是最有用的(watch)
v-if和v-show
v-if 是“真正”的條件渲染,因?yàn)樗鼤_保在切換過程中條件塊內(nèi)的事件監(jiān)聽器和子組件適當(dāng)?shù)乇讳N毀和重建。
v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變?yōu)檎鏁r,才會開始渲染條件塊。
相比之下,v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進(jìn)行切換。
一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在運(yùn)行時條件很少改變,則使用 v-if 較好。
v-for
在遍歷對象時,會按 Object.keys() 的結(jié)果遍歷,但是不能保證它的結(jié)果在不同的 JavaScript 引擎下都一致。
set 方法
- vm.$set(vm.userProfile, 'age', 27)
- vm.userProfile = Object.assign({}, vm.userProfile, {
age: 27,
favoriteColor: 'Vue Green'
}) 多個值