Vue學習筆記之計算屬性與偵聽器用法
本文實例講述了Vue計算屬性與偵聽器用法。分享給大家供大家參考,具體如下:
vue之所以加載速度非常塊,是因為在數(shù)據(jù)改變時,它并不是將所有組件都刷新,而是在重用代碼的基礎上對發(fā)生改變的地方進行渲染。同時,還得益于計算屬性的使用:
1、計算屬性
像綁定普通屬性一樣在模板中綁定計算屬性。例如reverseName屬性依賴于firstName和lastName,當firstName或lastName發(fā)生改變時,依賴于它的 reverseName 也會更新。
利用函數(shù)方法也可以實現(xiàn)類似的效果,不同的是計算屬性是基于它們的依賴進行緩存的。只有在它的相關依賴發(fā)生改變時才會重新求值。這就意味著只要 firstName 還沒有發(fā)生改變,再次訪問 reversedName 計算屬性會立即返回之前的計算結果,而不必再次執(zhí)行函數(shù)。相比之下,每當觸發(fā)重新渲染時,調(diào)用方法將總會再次執(zhí)行函數(shù).
為什么需要緩存?假設我們有一個性能開銷比較大的的計算屬性 A,它需要遍歷一個巨大的數(shù)組并做大量的計算。然后我們可能有其他的計算屬性 B 依賴于 A 。如果使用函數(shù),每獲得一次B就要調(diào)用一次函數(shù)進行計算,造成很大開銷!
計算屬性默認為get方法,也可以設定set方法,接收傳入處理數(shù)據(jù)。例如傳入originalName,set方法對其進行拆解并復制給firstName與lastName,并引起firstName與lastName改變,調(diào)用get()方法。
<div id="app">
<p>{{originalName}}</p>
<p>{{reverseName}}</p>
<button @click="deal()">反轉名字</button>
</div>
let vue=new Vue({
el:'#app',
data:{
firstName:'',
lastName:'',
originalName:"super tory"
},
methods:{
deal(){
this.reverseName=this.originalName;
}
},
computed:{ //計算屬性鉤子
reverseName:{
set(string){ //通過set方法對傳入?yún)?shù)this.originalName進行操作
let name=string.split(' ');
this.firstName=name[1];
this.lastName=name[0];
},
get(){ //通過get方法返回值
return this.firstName+' '+this.lastName;
}
}
}
});
2、偵聽器watch
在Vue中提供一個鉤子,偵聽data中的某個變量是否改變,如果改變則執(zhí)行響應函數(shù)。
<div id="app2"> <input v-model="listen"> </div>
let vue2=new Vue({
el:'#app2',
data:{
listen:''
},
watch:{ //定義偵聽器鉤子
listen:function () { //定義函數(shù)偵聽listen的變化
console.log("input內(nèi)容發(fā)生改變");
}
}
});
希望本文所述對大家vue.js程序設計有所幫助。
相關文章
vue-quill-editor插入圖片路徑太長問題解決方法
這篇文章主要介紹了vue-quill-editor插入圖片路徑太長問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
Vue配合iView實現(xiàn)省市二級聯(lián)動的示例代碼
本篇文章主要介紹了Vue配合iView實現(xiàn)省市二級聯(lián)動的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
vue3界面使用router及使用watch監(jiān)聽router的改變
vue2中使用router非常簡單,但是vue3中略微有些改變,通過本文講解下他的改變,對vue3?watch監(jiān)聽router相關知識感興趣的朋友一起看看吧2022-11-11
使用vue打包時vendor文件過大或者是app.js文件很大的問題
這篇文章主要介紹了使用vue打包時vendor文件過大或者是app.js文件很大問題的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
詳解Vue3?父組件調(diào)用子組件方法($refs?在setup()、<script?setup>?中使用)
這篇文章主要介紹了Vue3?父組件調(diào)用子組件方法($refs?在setup()、<script?setup>?中使用),在 vue2 中 ref 被用來獲取對應的子元素,然后調(diào)用子元素內(nèi)部的方法,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-08-08

