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

Vue中watch監(jiān)聽屬性新舊值相同的問題解決方案

 更新時(shí)間:2023年08月10日 10:28:42   作者:前端李十三  
這篇文章主要給大家分享了Vue中watch監(jiān)聽屬性新舊值相同問題解決方案,如果有遇到相同問題的朋友,可以參考閱讀本文

偵聽器 _watch:

作用:可以偵聽data和computed中數(shù)據(jù)的變化.

語法

watch: { "被偵聽的屬性名" (newVal, oldVal){ } }

監(jiān)聽簡單數(shù)據(jù)類型時(shí)可以直接使用,而監(jiān)聽復(fù)雜數(shù)據(jù)類型時(shí),例如當(dāng)我們只需要監(jiān)聽data或者computed中對象的某個(gè)屬性時(shí),可以使用字符串的形式進(jìn)行監(jiān)聽.

//舉例: 
watch: {
?    //字符串形式  表示監(jiān)聽item對象下的good_count屬性
?    'item.goods_count'(newval) {
?      if (newval <= 0) {
?        this.item.goods_count=1    
?      }
?    }
  }

在watch中,如果對對象進(jìn)行監(jiān)聽,只有對象obj被重新賦值時(shí),watch才會被監(jiān)聽到,這個(gè)時(shí)候無法對obj里面的屬性的變化進(jìn)行監(jiān)聽,我們也可以給watch對象加上深度監(jiān)聽屬性.

      handler(newval, oldval) {
        console.log("完整寫法,監(jiān)聽復(fù)雜數(shù)據(jù)類型", newval);
      },
      deep: true, //表示開啟深度監(jiān)聽
      immediate: true, //立即監(jiān)聽,在頁面初始化時(shí),會監(jiān)聽一次
    }

而監(jiān)聽復(fù)雜數(shù)據(jù)類型,當(dāng)復(fù)雜數(shù)據(jù)類型被改變之后,newval的值改變,由于newval和oldval都指向同一個(gè)對象,導(dǎo)致oldval也會隨之改變,打印出來則沒有了old和new之分.

解決方法:在初始化的時(shí)候,深克隆一個(gè)oldval.

也有看其他人寫的文章解決方案,都大差不差,都是使用一個(gè)計(jì)算屬性加上深拷貝,看別人的回答時(shí)總感覺很拗口.于是自己總結(jié)了一下.

在我看來,解決此問題的關(guān)鍵在于:我們此時(shí)遇到的問題就是新值與舊值指向同一個(gè)地址的問題.而深拷貝的特點(diǎn)就是新開辟一個(gè)地址儲存需要拷貝對象的所有屬性.然后指向這個(gè)新地址. 故 JSON.parse(JSON.stringify())能完美解決其中的問題.然后與計(jì)算屬性合并達(dá)到監(jiān)聽的屬性一旦變化,自動新開辟一個(gè)地址,儲存新值.而新值與舊值指向的地址不同,則解決了新值與舊值相同的問題.

  <div id="app">
    <input type="text" v-model="lzy.age" />
  </div>
</template>
<script>
export default {
  name: "App",
  watch: {
    lzy2: {
      handler(newvalue, oldvalue) {
        console.log("新值");
        console.log(newvalue);
        console.log("舊值");
        console.log(oldvalue);
        console.log(oldvalue===this.lzy);
      },
      deep: true,
    },
  },
  data() {
    return {
      lzy: {
        gender: "man",
        age: 21,
      },
    };
  },
  computed: {
    lzy2(){
      return JSON.parse(JSON.stringify(this.lzy))
      // 因?yàn)橛?jì)算屬性一開始就執(zhí)行了一次,相當(dāng)于在一開始就深拷貝拿到了oldvalue,改變之后又再一次深拷貝,每一次深拷貝生成的對象都是指向不同的地址,所以oldvalue和newvalue是兩個(gè)不同的地址.
    },
  },
};
</script>
<style scoped>
</style>

到此這篇關(guān)于Vue中watch監(jiān)聽屬性新舊值相同問題解決方案的文章就介紹到這了,更多相關(guān)Vue watch監(jiān)聽屬性新舊值相同內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue實(shí)現(xiàn)監(jiān)聽dom節(jié)點(diǎn)寬高變化方式

    Vue實(shí)現(xiàn)監(jiān)聽dom節(jié)點(diǎn)寬高變化方式

    這篇文章主要介紹了Vue實(shí)現(xiàn)監(jiān)聽dom節(jié)點(diǎn)寬高變化方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vuex簡單入門

    Vuex簡單入門

    本篇文章主要介紹了初步認(rèn)識理解Vuex,Vuex就是在一個(gè)項(xiàng)目中,提供唯一的管理數(shù)據(jù)源的倉庫,有興趣的可以了解一下
    2017-04-04
  • 詳解vue-cli中模擬數(shù)據(jù)的兩種方法

    詳解vue-cli中模擬數(shù)據(jù)的兩種方法

    這篇文章主要介紹了vue-cli中模擬數(shù)據(jù)的兩種方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • 詳解一次Vue低版本安卓白屏問題的解決過程

    詳解一次Vue低版本安卓白屏問題的解決過程

    這篇文章主要介紹了詳解一次Vue低版本安卓白屏問題的解決過程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • vue中的計(jì)算屬性的使用和vue實(shí)例的方法示例

    vue中的計(jì)算屬性的使用和vue實(shí)例的方法示例

    本篇文章主要介紹了vue計(jì)算屬性的使用和vue實(shí)例的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • vue中實(shí)現(xiàn)圖片和文件上傳的示例代碼

    vue中實(shí)現(xiàn)圖片和文件上傳的示例代碼

    下面小編就為大家分享一篇在vue中實(shí)現(xiàn)圖片和文件上傳的示例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue中監(jiān)聽返回鍵問題

    vue中監(jiān)聽返回鍵問題

    這篇文章主要介紹了解決vue中監(jiān)聽返回鍵問題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 詳解vue使用插槽分發(fā)內(nèi)容slot的用法

    詳解vue使用插槽分發(fā)內(nèi)容slot的用法

    這篇文章主要介紹了vue使用插槽分發(fā)內(nèi)容slot的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • vue項(xiàng)目中$t()的意思是什么

    vue項(xiàng)目中$t()的意思是什么

    這篇文章主要介紹了vue項(xiàng)目中$t()的意思是什么,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù)

    關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù)

    這篇文章主要介紹了關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù),輔助函數(shù)的好處就是幫助我們簡化了獲取store中state、getter、mutation和action,下面我們一起來看看文章具體的舉例說明吧,需要的小伙伴也可以參考一下
    2021-12-12

最新評論

安化县| 应城市| 昭平县| 永春县| 什邡市| 临潭县| 聂拉木县| 丰顺县| 泰安市| 成武县| 龙游县| 昌平区| 灵丘县| 基隆市| 宜章县| 太谷县| 平山县| 哈巴河县| 德江县| 苏州市| 兴仁县| 甘南县| 威信县| 房山区| 洞头县| 张家界市| 井陉县| 抚远县| 屏山县| 谢通门县| 周宁县| 鱼台县| 仲巴县| 乐清市| 泗阳县| 浠水县| 蓬莱市| 理塘县| 聂荣县| 永善县| 湛江市|