1、Vue 擴(kuò)展插件:
*vue-cli: vue 腳手架
*vue-resource(axios): ajax 請(qǐng)求
*vue-router: 路由
*vuex: 狀態(tài)管理
*vue-lazyload: 圖片懶加載
*vue-scroller: 頁(yè)面滑動(dòng)相關(guān)
*mint-ui: 基于 vue 的 UI 組件庫(kù)(移動(dòng)端)
*element-ui: 基于 vue 的 UI 組件庫(kù)(PC 端)
*它本身只關(guān)注 UI, 可以輕松引入 vue 插件或其它第三方庫(kù)開發(fā)項(xiàng)目
2、雙大括號(hào)表達(dá)式
*語(yǔ)法:{{exp}}
*功能: 向頁(yè)面輸出數(shù)據(jù)
*可以調(diào)用對(duì)象的方法
3、強(qiáng)制數(shù)據(jù)綁定:指定變化的屬性值
寫法:v-bind:xxx='yyy'?? //yyy 會(huì)作為表達(dá)式解析執(zhí)行
簡(jiǎn)介寫法::xxx='yyy'
4、綁定事件監(jiān)聽:綁定指定之間名的回調(diào)函數(shù)
完整寫法:v-on:keyup='xxx'
v-on:keyup='xxx(參數(shù))' v-on:keyup.enter='xxx'
簡(jiǎn)潔寫法:@keyup='xxx' @keyup.enter='xxx'
5、計(jì)算屬性:
*在 computed 屬性對(duì)象中定義計(jì)算屬性的方法
*在頁(yè)面中使用{{方法名}}來(lái)顯示計(jì)算的結(jié)果
6、監(jiān)視屬性:
*通過(guò)通過(guò) vm 對(duì)象的$watch()或 watch 配置來(lái)監(jiān)視指定的屬性
*當(dāng)屬性變化時(shí), 回調(diào)函數(shù)自動(dòng)調(diào)用, 在函數(shù)內(nèi)部進(jìn)行計(jì)算
7、計(jì)算屬性高級(jí)
*通過(guò) getter/setter 實(shí)現(xiàn)對(duì)屬性數(shù)據(jù)的顯示和監(jiān)視
*計(jì)算屬性存在緩存, 多次讀取只執(zhí)行一次 getter 計(jì)算
8、class 與 style 綁定:class/style 綁定是專門用來(lái)實(shí)現(xiàn)動(dòng)態(tài)樣式效果的技術(shù)
class綁定:*:class='xxx'
*表達(dá)式是字符串: 'classA'
*表達(dá)式是對(duì)象: {classA:isA, classB: isB}
*表達(dá)式是數(shù)組: ['classA', 'classB']
style綁定::style="{ color: activeColor, fontSize: fontSize + 'px' }"(其中 activeColor/fontSize 是 data 屬性)
9、條件渲染:
指令:v-if 與 v-else及v-show
注意點(diǎn):如果需要頻繁切換 v-show 較好
當(dāng)條件不成立時(shí), v-if 的所有子節(jié)點(diǎn)不會(huì)解析
10、列表渲染:
指令:數(shù)組: v-for / index ; 對(duì)象: v-for / key
更新顯示:刪除 item ; 替換 item
高級(jí)處理:列表過(guò)濾 ; 列表排序
11、事件處理:
綁定監(jiān)聽:*v-on:xxx="fun"
*@xxx="fun"
*@xxx="fun(參數(shù))"
*默認(rèn)事件形參: event
*隱含屬性對(duì)象: $event
事件修飾符:*.prevent : 阻止事件的默認(rèn)行為 event.preventDefault()
*.stop : 停止事件冒泡 event.stopPropagation()
按鍵修飾符:*.keycode : 操作的是某個(gè) keycode 值的鍵
? ? *.keyName : 操作的某個(gè)按鍵名的鍵(少部分)
12、表單輸入綁定:
使用 v-model 對(duì)表單數(shù)據(jù)自動(dòng)收集:text/textarea、checkbox、radio、select
13、vue生命周期分析:
-+-初始化顯示:*beforeCreate()、*created()、*beforeMount()、*mounted()
-+-更新狀態(tài):this.xxx = value、*beforeUpdate()、*updated()
-+-銷毀vue實(shí)例:vm.$destory()、*beforeDestory()、*destoryed()
14、常用的生命周期方法:
*created()/mounted(): 發(fā)送 ajax 請(qǐng)求, 啟動(dòng)定時(shí)器等異步任務(wù)
*beforeDestory(): 做收尾工作, 如: 清除定時(shí)器
15、常用內(nèi)置指令:
*v-text : 更新元素的 textContent
*v-html : 更新元素的 innerHTML
*v-if : 如果為 true, 當(dāng)前標(biāo)簽才會(huì)輸出到頁(yè)面
*v-else: 如果為 false, 當(dāng)前標(biāo)簽才會(huì)輸出到頁(yè)面
*v-show : 通過(guò)控制 display 樣式來(lái)控制顯示/隱藏
*v-for : 遍歷數(shù)組/對(duì)象
*v-on : 綁定事件監(jiān)聽, 一般簡(jiǎn)寫為@
*v-bind : 強(qiáng)制綁定解析表達(dá)式, 可以省略 v-bind 簡(jiǎn)寫為:
*v-model : 雙向數(shù)據(jù)綁定
*ref : 指定唯一標(biāo)識(shí), vue 對(duì)象通過(guò)$refs 屬性訪問(wèn)這個(gè)元素對(duì)象
*v-cloak : 防止閃現(xiàn), 與 css 配合: [v-cloak] { display: none }
16、自定義指令:
*注冊(cè)全局指令:
Vue.directive('my-directive', function(el, binding){ el.innerHTML = binding.value.toupperCase()
})
或
// 注冊(cè)一個(gè)全局自定義指令 `v-focus`
Vue.directive('focus', {
? // 當(dāng)被綁定的元素插入到 DOM 中時(shí)……
? inserted: function (el) {
? ? // 聚焦元素
? ? el.focus()
}
})
*注冊(cè)局部指令:
directives : {
'my-directive' : {
bind (el, binding) {
el.innerHTML = binding.value.toupperCase()
}
}
}
*使用指令:
v-my-directive='xxx'