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

淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化

這篇具有很好參考價(jià)值的文章主要介紹了淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化

??前言

計(jì)算屬性 computed 和偵聽器 watch 都是 Vue.js 框架中用來響應(yīng)式更新視圖的重要概念。因此無論是在哪個(gè)版本,它們都是不可缺少的概念,這篇文章就不過多詳細(xì)介紹計(jì)算屬性和偵聽器的概念和理論了,接下來主要談?wù)?Vue2Vue3 中計(jì)算屬性和偵聽器的語法變化和異同。


??計(jì)算屬性

計(jì)算屬性:計(jì)算屬性實(shí)際上是一種計(jì)算一個(gè)值并將結(jié)果緩存起來的方法。當(dāng)依賴的數(shù)據(jù)發(fā)生變化時(shí),緩存會(huì)被重新計(jì)算。計(jì)算屬性相比直接在模板表達(dá)式中調(diào)用方法或者直接使用表達(dá)式計(jì)算的好處在于其可以緩存結(jié)果,減少不必要的計(jì)算,提高性能。

Vue3 中的計(jì)算屬性和 Vue2 中的計(jì)算屬性基本相同,不過在語法上有所不同。在 Vue3 中,我們可以使用 computed 函數(shù)來定義計(jì)算屬性,它接受一個(gè)函數(shù)作為參數(shù),并返回一個(gè) ref 對象,這個(gè) ref 對象會(huì)自動(dòng)追蹤計(jì)算屬性使用到的數(shù)據(jù),并且在這些數(shù)據(jù)發(fā)生變化時(shí)重新計(jì)算計(jì)算屬性的值。

上面說到計(jì)算屬性是以函數(shù)的形式出現(xiàn)在組件的 computed 選項(xiàng)中,在新版的 Vue 3.xsetup 語法糖里,可以計(jì)算屬性的具體實(shí)現(xiàn)函數(shù)傳遞給 computed() 方法,然后賦值給一個(gè)變量。
淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化
??接下舉個(gè)簡單的例子。

<template>
  <p>原始count:{{ count }}</p>
  <p>計(jì)算屬性count:{{ doubleCount }}</p>
  <p>JavaScript表達(dá)式的count:{{ count * 2 }}</p>
</template>

<script setup>
import { computed, ref } from "vue";
const count = ref(2);
const doubleCount = computed(() => count.value * 2);
</script>

淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化


??偵聽器

偵聽器:偵聽器則通過監(jiān)聽數(shù)據(jù)變化來觸發(fā)回調(diào)函數(shù)的執(zhí)行。偵聽器適用于當(dāng)需要在數(shù)據(jù)變化時(shí)執(zhí)行異步或開銷較大的操作時(shí)使用,比如發(fā)送 Ajax 請求或進(jìn)行復(fù)雜的計(jì)算。

Vue3 中的偵聽器與 Vue2 中的 watch API 不同,Vue3 中可以使用新的 watchEffect 函數(shù)來監(jiān)聽響應(yīng)式數(shù)據(jù)的變化,同時(shí)也可以使用 watch 監(jiān)聽指定的數(shù)據(jù)。

1?? watchEffect 函數(shù)接受一個(gè)回調(diào)函數(shù)作為參數(shù),這個(gè)回調(diào)函數(shù)中可以訪問任何響應(yīng)式數(shù)據(jù),當(dāng)這些數(shù)據(jù)變化時(shí),回調(diào)函數(shù)都會(huì)被重新執(zhí)行。

2?? 如果要監(jiān)聽指定的數(shù)據(jù),可以使用 watch 函數(shù)。它接受兩個(gè)參數(shù):要監(jiān)聽的數(shù)據(jù)和回調(diào)函數(shù),當(dāng)監(jiān)聽的數(shù)據(jù)發(fā)生變化時(shí),回調(diào)函數(shù)會(huì)被執(zhí)行。

??接下舉個(gè)簡單的例子。

<template>
  <input type="number" v-model="num" />
  <p>result為:{{ result }}</p>
</template>

<script setup>
import { ref, watch, watchEffect } from "vue";
const num = ref(0);
const result = ref(0);
watch(
  () => num.value,
  (newValue, oldValue) => {
    console.log("舊值為:", oldValue, "新值為:", newValue);
    return (result.value = num.value * num.value);
  }
);
watchEffect(() => {
  console.log(`num: ${num.value}`);
});
</script>

淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化


??最后

計(jì)算屬性 computed 和偵聽器 watch 都是實(shí)現(xiàn)響應(yīng)式編程的重要工具,可以方便地處理復(fù)雜的業(yè)務(wù)數(shù)據(jù)變化場景??偟膩碚f,Vue.js 3.x 中的計(jì)算屬性和偵聽器與 2.x 版本還是非常相似,都是用來處理響應(yīng)式數(shù)據(jù)變化的關(guān)鍵工具。不同之處在于 3.x 版本中的語法略微有所不同,并且需要注意一些細(xì)節(jié),如嵌套對象的偵聽。
淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化
文章來源地址http://www.zghlxwxcb.cn/news/detail-425337.html

到了這里,關(guān)于淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽器的一些變化的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • VUE教程-基礎(chǔ)-計(jì)算屬性和偵聽器

    模板內(nèi)的表達(dá)式非常便利,但是設(shè)計(jì)它們的初衷是用于簡單運(yùn)算的。在模板中放入太多的邏輯會(huì)讓模板過重且難以維護(hù)。例如: 在這個(gè)地方,模板不再是簡單的聲明式邏輯。你必須看一段時(shí)間才能意識(shí)到,這里是想要顯示變量? message ?的翻轉(zhuǎn)字符串。當(dāng)你想要在模板中的多

    2024年02月17日
    瀏覽(26)
  • 二、基礎(chǔ)篇 vue計(jì)算屬性和偵聽器

    模板內(nèi)的表達(dá)式非常便利,但是設(shè)計(jì)它們的初衷是用于簡單運(yùn)算的。在模板中放入太多的邏輯會(huì)讓模板過重且難以維護(hù)。例如: 在這個(gè)地方,模板不再是簡單的聲明式邏輯。你必須看一段時(shí)間才能意識(shí)到,這里是想要顯示變量? message ?的翻轉(zhuǎn)字符串。當(dāng)你想要在模板中的多

    2024年01月18日
    瀏覽(21)
  • GuLi商城-前端基礎(chǔ)Vue-計(jì)算屬性computed和偵聽器watch
  • 前端Vue入門-day02-vue指令、computed計(jì)算屬性與watch偵聽器

    前端Vue入門-day02-vue指令、computed計(jì)算屬性與watch偵聽器

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對你有幫助,請留下您的足跡) 目錄 指令補(bǔ)充 指令修飾符 v-bind 對于樣式控制的增強(qiáng)? 操作class 案例:京東秒殺 tab 導(dǎo)航高亮 操作style? v-model 應(yīng)用于其他表單元素? computed 計(jì)算屬性 基礎(chǔ)語法 computed 計(jì)算屬

    2024年02月11日
    瀏覽(53)
  • 【源碼系列#04】Vue3偵聽器原理(Watch)

    專欄分享:vue2源碼專欄,vue3源碼專欄,vue router源碼專欄,玩具項(xiàng)目專欄,硬核??推薦?? 歡迎各位ITer關(guān)注點(diǎn)贊收藏?????? 偵聽一個(gè)或多個(gè)響應(yīng)式數(shù)據(jù)源,并在數(shù)據(jù)源變化時(shí)調(diào)用所給的回調(diào)函數(shù) 第一個(gè)參數(shù)可以是不同形式的“數(shù)據(jù)源”:它可以是一個(gè) ref (包括計(jì)算屬性

    2024年02月04日
    瀏覽(94)
  • Vue3前端開發(fā),watch數(shù)據(jù)偵聽器的立即執(zhí)行

    Vue3前端開發(fā),watch數(shù)據(jù)偵聽器的立即執(zhí)行

    Vue3前端開發(fā),watch數(shù)據(jù)偵聽器的立即執(zhí)行!實(shí)際上,我們可以通過回調(diào)函數(shù)的后面,再追加一個(gè)對象,來設(shè)置這個(gè)參數(shù),immediate:true.來實(shí)現(xiàn)一種立即執(zhí)行的效果。在頁面記載完成后,馬上就會(huì)執(zhí)行一次watch. 如上所示,我們在回調(diào)函數(shù)的后面,追加了一個(gè)參數(shù),是一個(gè)對象類型

    2024年01月18日
    瀏覽(28)
  • Vue3前端開發(fā),watch偵聽器的深度監(jiān)聽和精確監(jiān)聽

    Vue3前端開發(fā),watch偵聽器的深度監(jiān)聽和精確監(jiān)聽

    Vue3前端開發(fā),watch偵聽器的深度監(jiān)聽和精確監(jiān)聽!今天和大家分享的內(nèi)容是,關(guān)于watch的深度偵聽和精確監(jiān)聽。 首先看一下,第一個(gè)案例,練習(xí)的是,深度監(jiān)聽的效果。默認(rèn)是淺的偵聽,是不會(huì)觸發(fā)回調(diào)函數(shù)的。 如圖,當(dāng)我們點(diǎn)擊按鈕,修改num值的時(shí)候,觸發(fā)了回調(diào)函數(shù),在

    2024年01月23日
    瀏覽(20)
  • Web前端 ---- 【Vue3】computed計(jì)算屬性和watch偵聽屬性(偵聽被ref和reactive包裹的數(shù)據(jù))

    Web前端 ---- 【Vue3】computed計(jì)算屬性和watch偵聽屬性(偵聽被ref和reactive包裹的數(shù)據(jù))

    目錄 前言 computed watch watch偵聽ref數(shù)據(jù) ref簡單數(shù)據(jù)類型 ref復(fù)雜數(shù)據(jù)類型 watch偵聽reactive數(shù)據(jù) 本文介紹在vue3中的computed計(jì)算屬性和watch偵聽屬性。介紹watch如何偵聽被ref和reactive包裹的數(shù)據(jù) 在vue3中,計(jì)算屬性computed也是組合式api,也就是說要先引入,再在setup中使用 語法 完整:

    2024年01月18日
    瀏覽(46)
  • Vue3淺談:(二)Vue3計(jì)算屬性

    目錄 一、Vue3計(jì)算屬性 1.Vue3計(jì)算屬性基礎(chǔ)使用 2.計(jì)算屬性緩存和常規(guī)方法 3.可寫計(jì)算屬性 當(dāng)我們需要針對一些數(shù)據(jù)進(jìn)行一些邏輯運(yùn)算時(shí)可以使用模板中的表達(dá)式如下: 但是如果在模板中寫太多邏輯,會(huì)讓模板變得臃腫,難以維護(hù)。因此我們可以使用計(jì)算屬性 computed() ?方法來

    2023年04月25日
    瀏覽(25)
  • Vue——偵聽器

    目錄 基本示例? 深層偵聽器? 即時(shí)回調(diào)的偵聽器? 回調(diào)的觸發(fā)時(shí)機(jī)? this.$watch()? 停止偵聽器? ? ? ? ?計(jì)算屬性允許我們聲明性地計(jì)算衍生值。然而在有些情況下,我們需要在狀態(tài)變化時(shí)執(zhí)行一些“副作用”:例如更改 DOM,或是根據(jù)異步操作的結(jié)果去修改另一處的狀態(tài)

    2023年04月13日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包