亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue項(xiàng)目中數(shù)據(jù)的深度監(jiān)聽(tīng)或?qū)ο髮傩缘谋O(jiān)聽(tīng)實(shí)例

 更新時(shí)間:2020年07月17日 10:02:54   作者:_cris  
這篇文章主要介紹了Vue項(xiàng)目中數(shù)據(jù)的深度監(jiān)聽(tīng)或?qū)ο髮傩缘谋O(jiān)聽(tīng)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

眾所周知,vue項(xiàng)目中對(duì)數(shù)據(jù)的監(jiān)聽(tīng),提供了一個(gè)很好的鉤子watch,watch可以極其方便的監(jiān)聽(tīng)我們常用數(shù)據(jù)類(lèi)型值的變化,但通常當(dāng)我們想監(jiān)聽(tīng)一個(gè)對(duì)象中,某個(gè)屬性值的變化時(shí),很難達(dá)到我們預(yù)期的效果。根據(jù)vue的文檔,不難發(fā)現(xiàn),使用數(shù)據(jù)的深度監(jiān)聽(tīng)來(lái)達(dá)到這一效果。具體實(shí)現(xiàn)如下:

watch: {
  evlist: {
  handler(val, oldVal) {
   this.isTeam = val.projectParty;
   this.pjtid = val.pjtid;
   this.isFinish = val.projectSelfValue;
  },
  deep: true
  },
 
 },

這其中,evlist是一個(gè)對(duì)象,val監(jiān)聽(tīng)到變化后的值,oldVal是變化前的值。

補(bǔ)充知識(shí):vue中的監(jiān)聽(tīng)屬性和計(jì)算屬性

計(jì)算屬性(computed)

vue中的計(jì)算屬性是非常棒的東西,它兼具了邏輯和變量??梢宰屛覀儾辉訇P(guān)注視圖層,值關(guān)注代碼的邏輯即可。至于數(shù)據(jù)如何展現(xiàn)則只需由Vue負(fù)責(zé),不需要我們的參與。

所以如果在面臨選擇是使用計(jì)算屬性還是監(jiān)視屬性的情況下,優(yōu)先選擇計(jì)算屬性

  <p>Original message: "{{ message }}"</p>
  <p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>

export default {
  data(){
   return { 
    message: 'Hello',
   }
  },
  computed: {
   reversedMessage: function () {
    return this.message.split('').reverse().join('');
   }
  }

可以看到我們使用的計(jì)算屬性替代了模板內(nèi)表達(dá)式的功能。所以,對(duì)于任何復(fù)雜邏輯,你都應(yīng)當(dāng)使用計(jì)算屬性。而且計(jì)算屬性讓我們只關(guān)注于邏輯實(shí)現(xiàn),至于后期的數(shù)據(jù)在界面上的表示形式則直接由Vue.js負(fù)責(zé),讀者可以看到我們并沒(méi)有直接參與頁(yè)面展示上面來(lái)

此外,傳統(tǒng)的直接通過(guò)表達(dá)式求值的方式需要我們自行取值,而計(jì)算屬性是基于它們的依賴(lài)進(jìn)行緩存的。只在相關(guān)依賴(lài)發(fā)生改變時(shí)它們才會(huì)重新求值。也就是說(shuō),計(jì)算屬性會(huì)直接從緩存拿值,并伴隨著值的改變而改變。而傳統(tǒng)的直接通過(guò)表達(dá)式求值的方式需要我們?cè)谀弥抵靶枰獔?zhí)行一次getter()函數(shù)

監(jiān)聽(tīng)屬性(watch)

監(jiān)聽(tīng)屬性其實(shí)質(zhì)是一次異步回調(diào),希望讀者在想到使用監(jiān)聽(tīng)屬性之前多考慮能否采用計(jì)算屬性來(lái)取代監(jiān)聽(tīng)屬性

對(duì)比同一個(gè)功能實(shí)現(xiàn)

//計(jì)算屬性
computed: {
  fullName2: function () {
    return this.firstName + ' ' + this.lastName
  }
}
//監(jiān)聽(tīng)屬性
watch: {
   firstName: function (val) {
    this.fullName = val + ' ' + this.lastName
  },
  lastName: function (val) {
    this.fullName = this.firstName + ' ' + val
  }
} 

可以看到計(jì)算屬性的代碼更加簡(jiǎn)潔也更加高效,而且就實(shí)現(xiàn)效果而言,明顯計(jì)算屬性會(huì)更好一點(diǎn)

以上這篇Vue項(xiàng)目中數(shù)據(jù)的深度監(jiān)聽(tīng)或?qū)ο髮傩缘谋O(jiān)聽(tīng)實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue3-print-nb實(shí)現(xiàn)頁(yè)面打印(含分頁(yè)打印)示例代碼

    vue3-print-nb實(shí)現(xiàn)頁(yè)面打印(含分頁(yè)打印)示例代碼

    大多數(shù)后臺(tái)系統(tǒng)中都存在打印的需求,在有打印需求時(shí),對(duì)前端來(lái)說(shuō)當(dāng)然是直接打印頁(yè)面更容易,下面這篇文章主要給大家介紹了關(guān)于vue3-print-nb實(shí)現(xiàn)頁(yè)面打印(含分頁(yè)打印)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 詳解vue-class遷移vite的一次踩坑記錄

    詳解vue-class遷移vite的一次踩坑記錄

    本文主要介紹了vue-class遷移vite的一次踩坑記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • vue props對(duì)象validator自定義函數(shù)實(shí)例

    vue props對(duì)象validator自定義函數(shù)實(shí)例

    今天小編就為大家分享一篇vue props對(duì)象validator自定義函數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • nuxt靜態(tài)部署打包相對(duì)路徑操作

    nuxt靜態(tài)部署打包相對(duì)路徑操作

    這篇文章主要介紹了nuxt靜態(tài)部署打包相對(duì)路徑操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue?element?ui表格相同數(shù)據(jù)合并單元格效果實(shí)例

    vue?element?ui表格相同數(shù)據(jù)合并單元格效果實(shí)例

    工作中遇到需要根據(jù)單元格某個(gè)屬性合并,特此記錄下,下面這篇文章主要給大家介紹了關(guān)于vue?element?ui表格相同數(shù)據(jù)合并單元格效果的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • vue?this.$router和this.$route區(qū)別解析及路由傳參的2種方式?&&?this.$route的各種語(yǔ)法

    vue?this.$router和this.$route區(qū)別解析及路由傳參的2種方式?&&?this.$route

    this.$router?相當(dāng)于一個(gè)全局的路由器對(duì)象,包含了很多屬性和對(duì)象(比如?history?對(duì)象),任何頁(yè)面都可以調(diào)用其?push(),?replace(),?go()?等方法,本文給大家介紹Vue中this.$router與this.$route的區(qū)別?及push()方法,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • vue3+elementplus基于el-table-v2封裝公用table組件詳細(xì)代碼

    vue3+elementplus基于el-table-v2封裝公用table組件詳細(xì)代碼

    在日常開(kāi)發(fā)后端管理系統(tǒng)項(xiàng)目中,用于展示數(shù)據(jù)多會(huì)用表格進(jìn)行展示,下面這篇文章主要給大家介紹了關(guān)于vue3+elementplus基于el-table-v2封裝公用table組件的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Vue3異步組件Suspense的使用方法詳解

    Vue3異步組件Suspense的使用方法詳解

    這篇文章主要介紹了Vue3異步組件Suspense的使用方法詳解,需要的朋友可以參考下
    2023-01-01
  • 前端vue+element使用SM4國(guó)密加密解密的詳細(xì)實(shí)例

    前端vue+element使用SM4國(guó)密加密解密的詳細(xì)實(shí)例

    國(guó)密即國(guó)家密碼局認(rèn)定的國(guó)產(chǎn)密碼算法,主要有SM1,SM2,SM3,SM4,下面這篇文章主要給大家介紹了關(guān)于前端vue+element使用SM4國(guó)密加密解密的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Vue和React有哪些區(qū)別

    Vue和React有哪些區(qū)別

    這篇文章主要介紹了Vue和React有哪些區(qū)別,幫助大家更好的理解和學(xué)習(xí)JavaScript框架,感興趣的朋友可以了解下
    2020-09-09

最新評(píng)論