Vue入門學(xué)習(xí)筆記【基本概念、對(duì)象、過(guò)濾器、指令等】
本文實(shí)例講述了Vue入門基本概念與使用。分享給大家供大家參考,具體如下:
1. Vue.js是什么?
1). 一位華裔前Google工程師(尤雨溪)開發(fā)的前端js庫(kù)
2). 作用: 動(dòng)態(tài)構(gòu)建用戶界面
3). 特點(diǎn):
* 遵循MVVM模式
* 編碼簡(jiǎn)潔, 體積小, 運(yùn)行效率高, 移動(dòng)/PC端開發(fā)
* 它本身只關(guān)注UI, 可以輕松引入vue插件和其它第三庫(kù)開發(fā)項(xiàng)目
4). 與其它框架的關(guān)聯(lián):
* 借鑒angular的模板和數(shù)據(jù)綁定技術(shù)
* 借鑒react的組件化和虛擬DOM技術(shù)
5). vue包含一系列的擴(kuò)展插件(庫(kù)):
* 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的組件庫(kù)(移動(dòng)端)
* element-ui: 基于vue的組件庫(kù)(PC端)
2. 基本使用
1). 引入vue.js
2). 創(chuàng)建Vue實(shí)例對(duì)象(vm), 指定選項(xiàng)(配置)對(duì)象
el : 指定dom標(biāo)簽容器的選擇器
data : 指定初始化狀態(tài)數(shù)據(jù)的對(duì)象/函數(shù)(返回一個(gè)對(duì)象)
3). 在頁(yè)面模板中使用{{}}或vue指令
3. Vue對(duì)象的選項(xiàng)
1). el
指定dom標(biāo)簽容器的選擇器
Vue就會(huì)管理對(duì)應(yīng)的標(biāo)簽及其子標(biāo)簽
2). data
對(duì)象或函數(shù)類型
指定初始化狀態(tài)屬性數(shù)據(jù)的對(duì)象
vm也會(huì)自動(dòng)擁有data中所有屬性
頁(yè)面中可以直接訪問(wèn)使用
數(shù)據(jù)代理: 由vm對(duì)象來(lái)代理對(duì)data中所有屬性的操作(讀/寫)
3). methods
包含多個(gè)方法的對(duì)象
供頁(yè)面中的事件指令來(lái)綁定回調(diào)
回調(diào)函數(shù)默認(rèn)有event參數(shù), 但也可以指定自己的參數(shù)
所有的方法由vue對(duì)象來(lái)調(diào)用, 訪問(wèn)data中的屬性直接使用
this.xxx
4). computed
包含多個(gè)方法的對(duì)象
對(duì)狀態(tài)屬性進(jìn)行計(jì)算返回一個(gè)新的數(shù)據(jù), 供頁(yè)面獲取顯示
一般情況下是相當(dāng)于是一個(gè)只讀的屬性
利用set/get方法來(lái)實(shí)現(xiàn)屬性數(shù)據(jù)的計(jì)算讀取, 同時(shí)監(jiān)視屬性數(shù)據(jù)的變化
如何給對(duì)象定義get/set屬性
在創(chuàng)建對(duì)象時(shí)指定:
get name () {return xxx} / set name (value) {}
對(duì)象創(chuàng)建之后指定:
Object.defineProperty(obj, age, {get(){}, set(value){}})
5). watch
包含多個(gè)屬性監(jiān)視的對(duì)象
分為一般監(jiān)視和深度監(jiān)視
'xxx' : { deep : true, handler : fun(value) }
另一種添加監(jiān)視方式:
vm.$watch('xxx', funn)
4. 過(guò)渡動(dòng)畫
利用vue去操控css的transition/animation動(dòng)畫
模板: 使用<transition name='xxx'>
包含帶動(dòng)畫的標(biāo)簽
css樣式
.fade-enter-active: 進(jìn)入過(guò)程, 指定進(jìn)入的transition
.fade-leave-active: 離開過(guò)程, 指定離開的transition
.xxx-enter, .xxx-leave-to: 指定隱藏的樣式
編碼例子
.xxx-enter-active, .xxx-leave-active { transition: opacity .5s } .xxx-enter, .xxx-leave-to { opacity: 0 }
<transition name="xxx"> <p v-if="show">hello</p> </transition>
5. 生命周期
vm/組件對(duì)象
生命周期圖
主要的生命周期函數(shù)(鉤子)
created()
/ mounted()
: 啟動(dòng)異步任務(wù)(啟動(dòng)定時(shí)器,發(fā)送ajax請(qǐng)求, 綁定監(jiān)聽)
beforeDestroy()
: 做一些收尾的工作
6. 自定義過(guò)濾器
1). 理解
對(duì)需要顯示的數(shù)據(jù)進(jìn)行格式化后再顯示
2). 編碼
1). 定義過(guò)濾器
Vue.filter(filterName, function(value[,arg1,arg2,...]){ // 進(jìn)行一定的數(shù)據(jù)處理 return newValue })
2). 使用過(guò)濾器
<div>{{myData | filterName}}</div> <div>{{myData | filterName(arg)}}</div>
7. vue內(nèi)置指令
v-text/v-html: 指定標(biāo)簽體
* v-text : 當(dāng)作純文本
* v-html : 將value作為html標(biāo)簽來(lái)解析
v-if v-else v-show: 顯示/隱藏元素
* v-if : 如果vlaue為true, 當(dāng)前標(biāo)簽會(huì)輸出在頁(yè)面中
* v-else : 與v-if一起使用, 如果value為false, 將當(dāng)前標(biāo)簽輸出到頁(yè)面中
* v-show: 就會(huì)在標(biāo)簽中添加display樣式, 如果vlaue為true, display=block, 否則是none
v-for : 遍歷
* 遍歷數(shù)組 : v-for="(person, index) in persons"
* 遍歷對(duì)象 : v-for="value in person" $key
v-on : 綁定事件監(jiān)聽
* v-on:事件名, 可以縮寫為: @事件名
* 監(jiān)視具體的按鍵: @keyup.keyCode @keyup.enter
* 停止事件的冒泡和阻止事件默認(rèn)行為: @click.stop @click.prevent
* 隱含對(duì)象: $event
v-bind : 強(qiáng)制綁定解析表達(dá)式
* html標(biāo)簽屬性是不支持表達(dá)式的, 就可以使用v-bind
* 可以縮寫為: :id='name'
* :class
* :class="a"
* :class="{classA : isA, classB : isB}"
* :class="[classA, classB]"
* :style
:style="{color : color}"
v-model
* 雙向數(shù)據(jù)綁定
* 自動(dòng)收集用戶輸入數(shù)據(jù)
ref : 標(biāo)識(shí)某個(gè)標(biāo)簽
* ref='xxx'
* 讀取得到標(biāo)簽對(duì)象: this.$refs.xxx
8. 自定義指令
1). 注冊(cè)全局指令
Vue.directive('my-directive', function(el, binding){ el.innerHTML = binding.value.toUpperCase() })
2). 注冊(cè)局部指令
directives : { 'my-directive' : function(el, binding) { el.innerHTML = binding.value.toUpperCase() } }
3). 使用指令
<div v-my-directive='xxx'>
希望本文所述對(duì)大家vue.js程序設(shè)計(jì)有所幫助。
相關(guān)文章
Vue3安裝dataV報(bào)錯(cuò)問(wèn)題解決方案
這篇文章主要給大家介紹了關(guān)于Vue3安裝dataV報(bào)錯(cuò)問(wèn)題解決方案的相關(guān)資料,dataV用于大屏展示,個(gè)人覺得比echarts簡(jiǎn)單很多,需要的朋友可以參考下2023-06-06vue管理系統(tǒng)項(xiàng)目中的一些核心技能匯總
Vue是當(dāng)今增長(zhǎng)最快的前端框架,Vue 平易近人、用途廣泛且性能卓越,它的語(yǔ)法非常直觀,并且具有友好的學(xué)習(xí)曲線,是開發(fā)人員最想學(xué)習(xí)的頂級(jí)前端庫(kù)之一,下面這篇文章主要給大家介紹了關(guān)于vue管理系統(tǒng)項(xiàng)目中的一些核心技能,需要的朋友可以參考下2022-05-05vue引用BootStrap以及引用bootStrap-vue.js問(wèn)題
這篇文章主要介紹了vue引用BootStrap以及引用bootStrap-vue.js問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Vue nextTick延遲回調(diào)獲取更新后DOM機(jī)制詳解
這篇文章主要為大家介紹了Vue nextTick延遲回調(diào)獲取更新后DOM機(jī)制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Vue在echarts?tooltip中添加點(diǎn)擊事件案例詳解
本文主要介紹了Vue項(xiàng)目中在echarts?tooltip添加點(diǎn)擊事件的案例詳解,代碼具有一定的價(jià)值,感興趣的小伙伴可以來(lái)學(xué)習(xí)一下2021-11-11在 Vue3 中如何使用 styled-components
styled-components 的官方 Vue 版本目前已多年沒有更新,而且只支持到 Vue2,那么,在 Vue3 中怎么才能使用到 styled-components 呢,下面給大家介紹在 Vue3 中使用 styled-components的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2024-05-05Vue中子組件不能修改父組件傳來(lái)的Prop值的原因分析
在Vue中,父子組件之間通過(guò)Prop和Event實(shí)現(xiàn)了數(shù)據(jù)的雙向綁定,但是,Vue設(shè)計(jì)者為什么不允許子組件修改父組件傳遞的Prop呢,本文就來(lái)帶大家探究為什么子組件不能修改Prop,需要的朋友可以參考下2023-06-06解決在vue項(xiàng)目中,發(fā)版之后,背景圖片報(bào)錯(cuò),路徑不對(duì)的問(wèn)題
下面小編就為大家分享一篇解決在vue項(xiàng)目中,發(fā)版之后,背景圖片報(bào)錯(cuò),路徑不對(duì)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03