最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中watch如何同時(shí)監(jiān)聽(tīng)多個(gè)屬性

 更新時(shí)間:2024年07月24日 08:46:47   作者:努力學(xué)習(xí)~沖鴨  
這篇文章主要介紹了vue中watch如何同時(shí)監(jiān)聽(tīng)多個(gè)屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue watch同時(shí)監(jiān)聽(tīng)多個(gè)屬性

1. watch監(jiān)聽(tīng)的多個(gè)屬性之間沒(méi)有聯(lián)系(name、list),各自監(jiān)聽(tīng)值改變后執(zhí)行各自的方法,也無(wú)關(guān)順序問(wèn)題;

watch:{
    name(newValue, oldValue) {
        this.name = newValue
    },
    list(newVal, oldVal) {
        this.list = newVal
    }
}

2. watch監(jiān)聽(tīng)的多個(gè)屬性之間相互有聯(lián)系(useableCardTypeTime、tableData),并且任何一個(gè)值改變都有可能對(duì)第三個(gè)值(addDisable)產(chǎn)生改變,所以監(jiān)聽(tīng)兩個(gè)屬性的方法中都需要寫(xiě)對(duì)第三個(gè)值的改變操作;

watch:{
    useableCardTypeTime(newValue, oldValue) {
        if(this.tableData.length >= newValue.length) {
            this.addDisable = true
        } else {
            this.addDisable = false
        }
    },
    tableData(newVal, oldVal) {
        if(newVal.length >= this.useableCardTypeTime.length) {
            this.addDisable = true
        } else {
            this.addDisable = false
        }
    }
}

對(duì)于以上多個(gè)屬性之間有關(guān)聯(lián)的問(wèn)題,還有一個(gè)更為簡(jiǎn)便的方式來(lái)解決,即:

使用 computed 和 watch 監(jiān)聽(tīng)相結(jié)合的方式(推薦):

computed: {
    listenChange () {
        const { useableCardTypeTime, tableData } = this
        return { useableCardTypeTime, tableData }
    }
},
watch:{
    listenChange (val) {
        if(val.tableData.length >= val.useableCardTypeTime.length) {
            this.addDisable = true
        } else {
            this.addDisable = false
        }
    }
}

對(duì)于項(xiàng)目中需要一次性監(jiān)聽(tīng)多個(gè)屬性值的變化時(shí),推薦大家使用最后一種方式喔~~~(computed 和 watch 相結(jié)合

vue watch深度監(jiān)聽(tīng)多個(gè)屬性實(shí)例

watch :{
    //監(jiān)聽(tīng)type的變化
    'temp.type': {
      handler(type,old) {
        //這里寫(xiě)你的業(yè)務(wù)邏輯
        console.log('obj.a changed', type);
        if (type == 1) {
           this.temp.title  = '速來(lái)↓↓↓'
        } else {
           this.temp.title  = ''
        }
      },
      immediate: true,
      // deep: true
    },
    'temp.liveName': {
      handler(liveName,old) {
        //這里寫(xiě)你的業(yè)務(wù)邏輯
        console.log('obj.a changed', liveName);
        if (this.temp.type == 1) {
          this.temp.title = " 速來(lái)↓↓↓"
 
        }
      },
      immediate: true,
      // deep: true
    }
  },

watch中的immediate、handler和deep屬性

(1)immediate和handler

這樣使用watch時(shí)有一個(gè)特點(diǎn),就是當(dāng)值第一次綁定時(shí),不會(huì)執(zhí)行監(jiān)聽(tīng)函數(shù),只有值發(fā)生改變時(shí)才會(huì)執(zhí)行。

如果我們需要在最初綁定值的時(shí)候也執(zhí)行函數(shù),則就需要用到immediate屬性。

(2)deep

當(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)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何根據(jù)業(yè)務(wù)封裝自己的功能組件

    如何根據(jù)業(yè)務(wù)封裝自己的功能組件

    這篇文章主要介紹了Vue封裝功能組件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue3中pinia用法示例

    Vue3中pinia用法示例

    這篇文章主要介紹了Vue3中使用pinia,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 詳解vue中多個(gè)有順序要求的異步操作處理

    詳解vue中多個(gè)有順序要求的異步操作處理

    這篇文章主要介紹了vue中多個(gè)有順序要求的異步操作處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue3如何實(shí)現(xiàn)表格內(nèi)容無(wú)縫滾動(dòng)(又寫(xiě)了一堆冗余代碼)

    vue3如何實(shí)現(xiàn)表格內(nèi)容無(wú)縫滾動(dòng)(又寫(xiě)了一堆冗余代碼)

    這篇文章主要給大家介紹了關(guān)于vue3如何實(shí)現(xiàn)表格內(nèi)容無(wú)縫滾動(dòng)的相關(guān)資料,在Vue3項(xiàng)目中難免會(huì)遇到讓列表滾動(dòng)的需求,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • Vuex中State的使用方法

    Vuex中State的使用方法

    這篇文章主要介紹了Vuex中State的使用方法,Vuex 使用單一狀態(tài)樹(shù),用一個(gè)對(duì)象就包含了全部的應(yīng)用層級(jí)狀態(tài),這也意味著,每個(gè)應(yīng)用將僅僅包含一個(gè) store 實(shí)例,需要的朋友可以參考下
    2023-11-11
  • Vue.js組件使用props傳遞數(shù)據(jù)的方法

    Vue.js組件使用props傳遞數(shù)據(jù)的方法

    這篇文章主要為大家詳細(xì)介紹了Vue.js組件使用props傳遞數(shù)據(jù)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • vue實(shí)現(xiàn)多條件篩選超簡(jiǎn)潔代碼

    vue實(shí)現(xiàn)多條件篩選超簡(jiǎn)潔代碼

    這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)多條件篩選的相關(guān)資料,隨著數(shù)據(jù)的不斷增多,我們往往需要在表格中進(jìn)行多條件的篩選,以便快速定位符合我們需求的數(shù)據(jù),需要的朋友可以參考下
    2023-09-09
  • vue3集成bpmn.js詳細(xì)代碼示例

    vue3集成bpmn.js詳細(xì)代碼示例

    bpmn.js是一個(gè)BPMN2.0渲染工具包和web建模器,使得畫(huà)流程圖的功能在前端來(lái)完成,這篇文章主要給大家介紹了關(guān)于vue3集成bpmn.js的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • vue中的slot封裝組件彈窗

    vue中的slot封裝組件彈窗

    這篇文章主要介紹了vue中的slot封裝組件彈窗,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue3請(qǐng)求后端接口實(shí)現(xiàn)方式

    Vue3請(qǐng)求后端接口實(shí)現(xiàn)方式

    本文詳解Vue3中使用Fetch和Axios與后端交互的方法,涵蓋請(qǐng)求發(fā)起、狀態(tài)管理、錯(cuò)誤處理及跨域等解決方案,推薦優(yōu)先使用Axios,其攔截器、自動(dòng)轉(zhuǎn)換等特性提升開(kāi)發(fā)效率,建議封裝實(shí)例與API函數(shù)以統(tǒng)一配置
    2025-09-09

最新評(píng)論

湟中县| 灵石县| 通道| 宁陵县| 陵水| 廉江市| 贡嘎县| 崇左市| 禹城市| 衡阳市| 尚志市| 蓝山县| 三穗县| 德令哈市| 舟曲县| 庆元县| 建湖县| 于都县| 息烽县| 湘西| 兴海县| 古交市| 新绛县| 伊宁县| 凌云县| 随州市| 蚌埠市| 黄大仙区| 广汉市| 南汇区| 蓝田县| 郴州市| 阿拉善左旗| 武安市| 芦山县| 抚顺县| 雷波县| 穆棱市| 安岳县| 天柱县| 都安|