使用watch監(jiān)聽(tīng)對(duì)象里面值的變化
watch監(jiān)聽(tīng)對(duì)象里面值的變化
后臺(tái)管理有時(shí)候有選擇選擇框的不同選項(xiàng),會(huì)影響下一個(gè)選擇框的內(nèi)容,如下圖


.這個(gè)時(shí)候就可以用到watch監(jiān)聽(tīng)
1.樣式代碼
<div class="list">
訂單類型:
<el-select v-model="getorderType" placeholder="請(qǐng)選擇" @change="getchange">
<el-option
v-for="item in options1"
:key="item.orderType"
:label="item.label"
:value="item.orderType">
</el-option>
</el-select>
</div>
<div class="list">
操作對(duì)象:
<el-select v-model="getworksRegion" placeholder="請(qǐng)選擇" @change="getchange1">
<el-option
v-for="item in options6"
:key="item.worksRegion"
:label="item.label"
:value="item.worksRegion">
</el-option>
</el-select>
</div>2.data里的代碼
data() {
return {
verifyData: this.propData,
editBoxShow: false,
options1: [{
orderType: '1',
label: '首次出售'
},{
orderType:"2",
label: "二次及以上掛售"
}
],
options2: [{
worksRegion: '0',
label: '原創(chuàng)作品'
},{
worksRegion:"1",
label: "首頁(yè)大IP"
},
{
worksRegion:"3",
label: "盲盒"
}
],
options5: [{
worksRegion: '0',
label: '原創(chuàng)作品'
},{
worksRegion:"1",
label: "首頁(yè)大IP"
},{
worksRegion:"2",
label: "官方藏品"
},
{
worksRegion:"3",
label: "盲盒"
}
],
options6:[],
queryParams:{
id:"",
orderType:'',//1 正常訂單(首次出售), 2 掛售訂單(二次及以上掛售)
worksRegion:"",// 0 原創(chuàng) 1 平臺(tái)首發(fā) 2 官方藏品 3 盲盒
},
getorderType:"",
getworksRegion:"",
};
},3.watch監(jiān)聽(tīng)
watch:{
'queryParams.orderType':function (newName,oldName){
if(newName==1){
this.options6 = this.options2
}else if(newName==2){
this.options6 = this.options5
}
}
},重點(diǎn)監(jiān)聽(tīng)對(duì)象的形式為
? watch:{
? ? 'queryParams.orderType':function (newName,oldName){//newName 新數(shù)據(jù) oldName 老數(shù)據(jù)
? ? ??
? ? }
? },對(duì)以上例子和代碼進(jìn)行理解,就可以理解watch監(jiān)聽(tīng)對(duì)象里的值的變化。
watch如何深度監(jiān)聽(tīng)對(duì)象變化
深度監(jiān)聽(tīng)
handler:其值是一個(gè)回調(diào)函數(shù)。監(jiān)聽(tīng)到變化時(shí)應(yīng)該執(zhí)行的函數(shù)。deep:其值是true或false;確認(rèn)是否深入監(jiān)聽(tīng)。(一般監(jiān)聽(tīng)時(shí)是不能監(jiān)聽(tīng)到對(duì)象屬性值的變化的,數(shù)組的值變化可以聽(tīng)到。)immediate:其值是true或false;確認(rèn)是否以當(dāng)前的初始值執(zhí)行handler的函數(shù)。
當(dāng)需要監(jiān)聽(tīng)一個(gè)對(duì)象的改變時(shí),普通的watch方法無(wú)法監(jiān)聽(tīng)到對(duì)象內(nèi)部屬性的改變,此時(shí)需要deep屬性對(duì)對(duì)象進(jìn)行深度監(jiān)聽(tīng)
watch: {
? ? obj: {
? ? ? handler(newValue, oldValue) {
? ? ? ? console.log(newValue.id);
? ? ? ? this.formData.fid = newValue ? newValue.id : 0;
? ? ? },
? ? ? deep: true,
? ? ? immediate: true
? ? }
? },需要注意得到是 handler 是固定寫(xiě)法,不能用其他的。
immediate表示在watch中首次綁定的時(shí)候,是否執(zhí)行handler,值為true則表示在watch中聲明的時(shí)候,就立即執(zhí)行handler方法,值為false,則和一般使用watch一樣,在數(shù)據(jù)發(fā)生變化的時(shí)候才執(zhí)行handler。
上面的視圖里 之所以刷新馬上就執(zhí)行了 handler函數(shù),就是因?yàn)樵O(shè)置了 immediate 屬性為 true
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue開(kāi)發(fā)頁(yè)面自適應(yīng)屏幕尺寸的實(shí)例代碼
使用vue開(kāi)發(fā)的頁(yè)面都是通過(guò)px設(shè)置它的尺寸,如果換了一個(gè)不同尺寸的屏幕就會(huì)出現(xiàn)頁(yè)面排版錯(cuò)亂,顯示不完整等情況,下面通過(guò)插件將px裝換為rem單位適應(yīng)不同尺寸的屏幕,需要的朋友可以參考下2022-12-12
vue+echarts+datav大屏數(shù)據(jù)展示及實(shí)現(xiàn)中國(guó)地圖省市縣下鉆功能
這篇文章主要介紹了vue+echarts+datav大屏數(shù)據(jù)展示及實(shí)現(xiàn)中國(guó)地圖省市縣下鉆,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Vue后臺(tái)管理系統(tǒng)之實(shí)現(xiàn)分頁(yè)功能示例
本文主要介紹了Vue后臺(tái)管理系統(tǒng)之實(shí)現(xiàn)分頁(yè)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
vue iview的菜單組件Mune 點(diǎn)擊不高亮的解決方案
今天小編就為大家分享一篇vue iview的菜單組件Mune 點(diǎn)擊不高亮的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
詳解在vue-test-utils中mock全局對(duì)象
這篇文章主要介紹了詳解在vue-test-utils中mock全局對(duì)象,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
vue3使用wangeditor封裝和自定義上傳文件官方教程
這篇文章主要為大家介紹了vue3使用wangeditor封裝和自定義上傳文件的官方教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-06-06
如何解決Vue請(qǐng)求接口出現(xiàn)跨域問(wèn)題Access-Control-Allow-Origin
這篇文章主要介紹了如何解決Vue請(qǐng)求接口出現(xiàn)跨域問(wèn)題Access-Control-Allow-Origin,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vuex state中的數(shù)組變化監(jiān)聽(tīng)實(shí)例
今天小編就為大家分享一篇vuex state中的數(shù)組變化監(jiān)聽(tīng)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11

