国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue 中的 watch 和 computed 的區(qū)別是什么?

這篇具有很好參考價(jià)值的文章主要介紹了Vue 中的 watch 和 computed 的區(qū)別是什么?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在 Vue.js 中,watchcomputed 都是用來監(jiān)聽數(shù)據(jù)變化的方式,但它們的使用方式和實(shí)現(xiàn)機(jī)制有所不同,下面是它們的區(qū)別:

? 實(shí)現(xiàn)機(jī)制

watch 監(jiān)聽的是一個(gè)具體的數(shù)據(jù),當(dāng)數(shù)據(jù)變化之后會(huì)執(zhí)行相應(yīng)的回調(diào)函數(shù);computed 屬性就像一個(gè)響應(yīng)式的計(jì)算屬性,是基于所依賴的數(shù)據(jù)進(jìn)行緩存處理的。當(dāng)依賴的數(shù)據(jù)變化時(shí),computed 屬性會(huì)自動(dòng)更新緩存,而數(shù)據(jù)發(fā)生變化時(shí)不會(huì)立即執(zhí)行相應(yīng)的操作,而是等待下一次任務(wù)隊(duì)列的更新時(shí)機(jī)。

? 適用場(chǎng)景

  • watch 更適合有副作用的數(shù)據(jù)監(jiān)聽,例如一些需要后臺(tái)請(qǐng)求的數(shù)據(jù);
  • computed 更適合基于已有數(shù)據(jù)(data 和 props)計(jì)算得出的屬性,并且需要緩存的場(chǎng)景。

? 功能

  • watch 可監(jiān)聽多個(gè)數(shù)據(jù),可以在數(shù)據(jù)變化時(shí)做出相應(yīng)的處理;
  • computed 只支持計(jì)算屬性的緩存,當(dāng)依賴的數(shù)據(jù)變化時(shí)會(huì)自動(dòng)更新緩存,而且可以設(shè)置 gettersetter

? 性能

  • watch 的性能較弱,因?yàn)樗O(jiān)測(cè)的是具體某一個(gè)數(shù)據(jù)或多個(gè)數(shù)據(jù)的變化,如果監(jiān)聽的數(shù)據(jù)過多,那么 watch 會(huì)對(duì)整個(gè)應(yīng)用的性能造成不良影響;
  • computed 的性能較好,因?yàn)樗举|(zhì)上是一個(gè)緩存,只有當(dāng)數(shù)據(jù)發(fā)生變化時(shí)才會(huì)更新緩存,不會(huì)像 watch 一樣無腦地遍歷監(jiān)聽數(shù)據(jù)。

? 監(jiān)聽數(shù)據(jù)的不同

  • watch 監(jiān)聽的是一個(gè)具體的數(shù)據(jù),可以是一個(gè) data 中的屬性或者是一個(gè)組件外部傳遞進(jìn)來的 prop。當(dāng)該數(shù)據(jù)發(fā)生變化時(shí),會(huì)執(zhí)行相應(yīng)的回調(diào)函數(shù)。
  • computed 是一個(gè)計(jì)算屬性,它是一個(gè)基于已有數(shù)據(jù)(data 和 props)計(jì)算得出的屬性,在模板中使用時(shí),就像一個(gè)響應(yīng)式屬性一樣。當(dāng)計(jì)算依賴的數(shù)據(jù)發(fā)生變化時(shí),計(jì)算屬性會(huì)自動(dòng)更新,并且計(jì)算屬性具有緩存機(jī)制,在計(jì)算屬性依賴的數(shù)據(jù)未發(fā)生變化時(shí),直接返回緩存結(jié)果。

?執(zhí)行時(shí)機(jī)的不同

  • watch 是當(dāng)監(jiān)聽的數(shù)據(jù)發(fā)生變化時(shí)就會(huì)立即執(zhí)行回調(diào)函數(shù),用于監(jiān)聽有異步操作的數(shù)據(jù)。
  • computed 是每當(dāng)依賴的數(shù)據(jù)發(fā)生變化時(shí),才會(huì)重新計(jì)算,用于在模板中處理數(shù)據(jù)的邏輯

?實(shí)現(xiàn)方式的不同

  • watch 主要是通過 $watchwatch 對(duì)象來實(shí)現(xiàn),$watch 可以監(jiān)聽單個(gè)數(shù)據(jù)的變化,watch 對(duì)象可以監(jiān)聽多個(gè)數(shù)據(jù)的變化。
  • computed 是通過 computed 屬性來實(shí)現(xiàn)的,它接收一個(gè)對(duì)象作為參數(shù),對(duì)象中的 key 對(duì)應(yīng)計(jì)算屬性的名稱,value 對(duì)應(yīng)計(jì)算屬性的邏輯函數(shù)。

總之,watch 更加靈活,涉及到的數(shù)據(jù)范圍也更廣泛,但相對(duì)而言性能上略遜一籌;computed 更加簡(jiǎn)潔,并且能夠節(jié)省性能,但是只適合對(duì)已有的數(shù)據(jù)進(jìn)行計(jì)算得出結(jié)果返回,一般情況下computed 是用來處理復(fù)雜的邏輯運(yùn)算,在模板中調(diào)用方便;watch 則是用來監(jiān)聽一些數(shù)據(jù)變化,通常是需要執(zhí)行異步操作時(shí)使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-453834.html

到了這里,關(guān)于Vue 中的 watch 和 computed 的區(qū)別是什么?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Vue2從入門到精通】Vue監(jiān)聽器watch,計(jì)算屬性computed,方法methods的區(qū)別及使用場(chǎng)景

    【Vue2從入門到精通】Vue監(jiān)聽器watch,計(jì)算屬性computed,方法methods的區(qū)別及使用場(chǎng)景

    ?創(chuàng)作者:全棧弄潮兒 ?? 個(gè)人主頁: 全棧弄潮兒的個(gè)人主頁 ??? 個(gè)人社區(qū),歡迎你的加入:全棧弄潮兒的個(gè)人社區(qū) ?? 專欄地址:vue2從入門到精通 【分享幾個(gè)國內(nèi)免費(fèi)可用的ChatGPT鏡像】 【10幾個(gè)類ChatGPT國內(nèi)AI大模型】 【用《文心一言》1分鐘寫一篇博客簡(jiǎn)直yyds】 【用

    2023年04月15日
    瀏覽(37)
  • Vue.js 中的 mixin 和混入有什么區(qū)別?

    Vue.js 中的 mixin 和混入有什么區(qū)別?

    在 Vue.js 中,mixin 和混入是兩個(gè)常用的概念,它們可以幫助我們實(shí)現(xiàn)代碼的復(fù)用和組件間的通信。雖然它們的名字很相似,但它們的作用和用法有所不同。本文將介紹 mixin 和混入的區(qū)別,并通過代碼示例來說明它們的用法。 mixin 是一種在 Vue.js 中實(shí)現(xiàn)代碼復(fù)用的方式。它類似

    2024年02月09日
    瀏覽(28)
  • 前端經(jīng)典面試題 | Computed 和 Watch 的區(qū)別

    ??? 前端經(jīng)典面試題專欄:前端經(jīng)典面試題 | Computed 和 Watch 的區(qū)別 ????? 個(gè)人簡(jiǎn)介:一個(gè)不甘平庸的平凡人?? ? 個(gè)人主頁:CoderHing的個(gè)人主頁 ?? 格言: ?? 路漫漫其修遠(yuǎn)兮,吾將上下而求索?? ?? 你的一鍵三連是我更新的最大動(dòng)力?? 目錄 一、回答點(diǎn) 二、深入回

    2024年02月21日
    瀏覽(27)
  • Vue.js 中的 $emit 和 $on 方法有什么區(qū)別?

    Vue.js 中的 $emit 和 $on 方法有什么區(qū)別?

    在 Vue.js 中,$emit 和 $on 方法是兩個(gè)常用的方法,用于實(shí)現(xiàn)組件間的通信。它們可以讓我們?cè)谝粋€(gè)組件中觸發(fā)一個(gè)自定義事件,并在另一個(gè)組件中監(jiān)聽這個(gè)事件,從而實(shí)現(xiàn)組件間的數(shù)據(jù)傳遞和交互。雖然它們的名字很相似,但它們的作用和用法有所不同。本文將介紹 $emit 和

    2024年02月08日
    瀏覽(23)
  • Vue.js 中的 watch 屬性詳解

    Vue.js 中的 watch 屬性詳解

    在 Vue.js 中, watch 屬性是一種非常重要的屬性,它可以監(jiān)聽 Vue 實(shí)例中指定的數(shù)據(jù)變化,并在數(shù)據(jù)發(fā)生變化時(shí)執(zhí)行相應(yīng)的操作。本文將對(duì) Vue.js 中的 watch 屬性進(jìn)行詳細(xì)的介紹,并附上相關(guān)的代碼示例。 在 Vue.js 中, watch 屬性被定義為一個(gè)對(duì)象,它可以用來監(jiān)聽 Vue 實(shí)例中的數(shù)

    2024年02月07日
    瀏覽(26)
  • 4.0 Vue.js中的computed的設(shè)計(jì)

    computed 作為計(jì)算屬性其作用是描述響應(yīng)式數(shù)據(jù)的復(fù)雜邏輯計(jì)算,當(dāng)所依賴的響應(yīng)式數(shù)據(jù)發(fā)生改變時(shí)計(jì)算屬性會(huì)重新計(jì)算,更新邏輯計(jì)算的結(jié)果。 有個(gè)體現(xiàn)計(jì)算屬性特點(diǎn)的便是比較計(jì)算屬性和方法的區(qū)別,比如我們需要計(jì)算兩個(gè)響應(yīng)式數(shù)據(jù)的和 其區(qū)別為computed有緩存機(jī)制,當(dāng)內(nèi)

    2024年02月08日
    瀏覽(19)
  • 學(xué)習(xí)Vue:computed VS watch

    在 Vue.js 中,Vue 實(shí)例與數(shù)據(jù)綁定不僅限于簡(jiǎn)單的插值表達(dá)式和指令。在實(shí)際開發(fā)中,您可能會(huì)遇到更復(fù)雜的數(shù)據(jù)處理需求。為此,Vue 提供了計(jì)算屬性和偵聽器這兩個(gè)強(qiáng)大的工具,讓您能夠更靈活地處理和響應(yīng)數(shù)據(jù)變化。 計(jì)算屬性是 Vue 實(shí)例中的一個(gè)特殊屬性,它允許您定義一

    2024年02月12日
    瀏覽(25)
  • Vue.js 中的 v-if 和 v-show 有什么區(qū)別?

    Vue.js 中的 v-if 和 v-show 有什么區(qū)別?

    在 Vue.js 中,v-if 和 v-show 都是用來控制元素的顯示和隱藏的指令。但是,它們之間有一些區(qū)別。本文將深入探討 v-if 和 v-show 的區(qū)別,并給出一些相關(guān)的代碼示例。 v-if 是一種條件渲染指令,它根據(jù)表達(dá)式的值來決定是否渲染元素。如果表達(dá)式的值為 true,那么元素將被渲染;

    2024年02月08日
    瀏覽(21)
  • 淺談Vue的屬性,computed和watch

    是什么? 直接上demo,了解一下語法先~ conputed是 計(jì)算 屬性,watch是 監(jiān)聽 屬性,本質(zhì)上都是同一個(gè) watcher實(shí)例 ,它們都是 通過響應(yīng)式系統(tǒng)與數(shù)據(jù),頁面建立通信 。 computed帶有 \\\"懶計(jì)算\\\" 功能 監(jiān)聽的邏輯有差異 :computed是依賴的值變了,它去重新求值,watch是目標(biāo)值變了,它去

    2024年01月18日
    瀏覽(24)
  • Vue3的computed和watch

    Vue3的computed和watch

    目錄 1、computed 2、computed完整寫法 ?3、watch 4、watch監(jiān)聽對(duì)象具體屬性 5、watch 監(jiān)聽reactive數(shù)據(jù) 1、computed 基于現(xiàn)有的數(shù)據(jù)計(jì)算出新的數(shù)據(jù) 2、computed完整寫法 ? 3、watch 1 . 偵聽一個(gè)數(shù)據(jù) 第一個(gè)參數(shù):監(jiān)聽的數(shù)據(jù) 第二個(gè)回調(diào)函數(shù) 2.偵聽多個(gè)數(shù)據(jù) 第一個(gè)參數(shù)監(jiān)聽的數(shù)據(jù)構(gòu)成的數(shù)組

    2024年01月24日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包