欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Vue的監(jiān)聽屬性

 更新時間:2021年11月24日 15:58:05   作者:浪漫主義碼農(nóng)  
這篇文章主要為大家介紹了Vue的監(jiān)聽屬性,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

Vue監(jiān)聽屬性

什么是監(jiān)聽屬性?

所謂監(jiān)聽就是對內(nèi)置對象的狀態(tài)或者屬性變化進行監(jiān)聽并且做出反應(yīng)的響應(yīng),監(jiān)聽屬性,意思就是可以監(jiān)視其他數(shù)據(jù)的變化。

監(jiān)聽屬性和計算屬性的區(qū)別?

計算屬性是依賴的值改變后重新計算結(jié)果更新DOM,會進行緩存。

屬性監(jiān)聽的是屬性值,當定義的值發(fā)生變化時,執(zhí)行相對應(yīng)的函數(shù)。

最主要的用途區(qū)別:

計算屬性不能執(zhí)行異步任務(wù)。計算屬性一般不會用來向服務(wù)器請求或者執(zhí)行異步任務(wù),因為耗時可能會比較長,我們的計算屬性要實時更新。所以這個異步任務(wù)就可以用監(jiān)聽屬性來做。

總之一句話:computed能實現(xiàn)的,watch都能實現(xiàn),computed不能實現(xiàn)的,watch也能實現(xiàn)

監(jiān)聽屬性的使用

使用watch配置項,在配置項里面寫上要監(jiān)視的屬性,每次屬性值的變化都會觸發(fā)handler函數(shù)回調(diào),也可以監(jiān)視計算屬性的變化。

在這里插入圖片描述

例子:

監(jiān)視輸入框的變化

在這里插入圖片描述

代碼

<template>
<div class="main">
    我:<el-input v-model="name" placeholder="請輸入名字"></el-input>
    好友1<el-input v-model="friends.friend_1" placeholder="請輸入名字"></el-input>
    好友2<el-input v-model="friends.friend_2" placeholder="請輸入名字"></el-input>
</div>
</template>
<script>
export default {
  data(){
    return{
      name:'浪漫主義碼農(nóng)',
      friends:{friend_1:'張三',friend_2:'李四'}
    }
  },
  watch:{
    name:{
      handler(newValue,oldValue){  //newValue 新的值,oldValue變化前的值
        console.log(newValue,oldValue)
        this.friends.friend_1='王五'
      }
    },
    //監(jiān)視多級結(jié)構(gòu)中某個屬性的變化
    'friends.friend_1':{
      handler(newValue,oldValue){
        console.log(newValue,oldValue)
      }
    },
    'friends.friend_2':{
      handler(newValue,oldValue){
        console.log(newValue,oldValue)
      }
    },
  }
};
</script>

深度監(jiān)聽

當我們的對象有多層結(jié)構(gòu)的時候,我們要監(jiān)聽的對象的屬性很多,避免一個一個屬性單獨寫,這個時候用到深度監(jiān)聽。

在watch配置中,監(jiān)視屬性對象中,配置deep 設(shè)置為 true 用于監(jiān)聽多級對象或者數(shù)組內(nèi)部值的變化

 watch:{
    //監(jiān)視多級結(jié)構(gòu)中所有屬性的變化
    friends:{
      handler(newValue,oldValue){
        console.log(newValue,oldValue,"aa")
      },
      deep:true, //開啟深度監(jiān)聽
    }
  }

在這里插入圖片描述

注意:這里有個問題,深度監(jiān)聽時會出現(xiàn)新舊值相同的現(xiàn)象?

官方的解釋:

在變異(不是替換)對象或數(shù)組時,舊值將與新值相同,因為它們的引用指向同一個對象/數(shù)組。Vue不會保留變異之前值的副本

就是導(dǎo)致了指針的變化。在我的js深拷貝你還不會嗎 文章里講到數(shù)據(jù)的存儲

立即調(diào)用

和deep配置的地方一樣。

immediate 設(shè)置為 true 將立即以觸發(fā)當前handler回調(diào)

  watch:{
    name:{
      handler(newValue,oldValue){  //newValue 新的值,oldValue變化前的值
        console.log(newValue,oldValue)
        this.friends.friend_1='王五'
      },
      immediate:true
    },
  }

在頁面加載的時候就執(zhí)行了一次,所以舊數(shù)據(jù)為undefined

在這里插入圖片描述

總結(jié)

watch監(jiān)聽屬性通常可以用在 數(shù)據(jù)持久化、派發(fā)事件并同步/異步執(zhí)行,驗證格式…

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Element中使用ECharts的項目實踐

    Element中使用ECharts的項目實踐

    本文主要介紹了Element中使用ECharts的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • vue如何解決代碼需要在dom渲染之后執(zhí)行問題

    vue如何解決代碼需要在dom渲染之后執(zhí)行問題

    這篇文章主要介紹了vue如何解決代碼需要在dom渲染之后執(zhí)行問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 前端開發(fā)指南之vue-grid-layout的使用實例

    前端開發(fā)指南之vue-grid-layout的使用實例

    vue-grid-layout是一個vue柵格拖動布局的組件,下面這篇文章主要給大家介紹了關(guān)于前端開發(fā)指南之vue-grid-layout使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • 解決‘vue-cli-service‘不是內(nèi)部或外部命令,也不是可運行的程序問題

    解決‘vue-cli-service‘不是內(nèi)部或外部命令,也不是可運行的程序問題

    遇到'vue-cli-service'不是內(nèi)部或外部命令的錯誤通常因為VueCLI未正確安裝或配置,解決步驟包括確保VueCLI全局安裝、檢查項目依賴、安裝項目依賴、清理并重新安裝依賴以及使用npm腳本調(diào)用vue-cli-service,按步驟操作后應(yīng)能解決問題
    2024-11-11
  • mpvue寫一個CPASS小程序的示例

    mpvue寫一個CPASS小程序的示例

    這篇文章主要介紹了mpvue寫一個CPASS小程序的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 詳解vue2如何實現(xiàn)點擊預(yù)覽本地文件

    詳解vue2如何實現(xiàn)點擊預(yù)覽本地文件

    這篇文章主要為大家詳細介紹了vue2如何實現(xiàn)點擊預(yù)覽本地的word、excle、pdf文件,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • vue項目中chunk-vendors.js提示報錯的查看方法(最新推薦)

    vue項目中chunk-vendors.js提示報錯的查看方法(最新推薦)

    在vue項目中,chunk-vendors.js報出的錯誤提示經(jīng)常會導(dǎo)致開發(fā)者困惑,正確查看錯誤的方法是從錯誤提示的詳細信息中找到報錯原因,下面給大家分享vue項目中chunk-vendors.js提示報錯的查看方法,感興趣的朋友一起看看吧
    2024-12-12
  • vue?demi支持sfc方式的vue2vue3通用庫開發(fā)詳解

    vue?demi支持sfc方式的vue2vue3通用庫開發(fā)詳解

    這篇文章主要為大家介紹了vue?demi支持sfc方式的vue2vue3通用庫開發(fā)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Vue概念及常見命令介紹(1)

    Vue概念及常見命令介紹(1)

    這篇文章主要為大家詳細介紹了Vue概念及常見命令,介紹了vue.js聲明式渲染、雙向綁定及常用指令,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • vue如何通過button的disabled控制按鈕能否被使用

    vue如何通過button的disabled控制按鈕能否被使用

    這篇文章主要介紹了vue如何通過button的disabled控制按鈕能否被使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論