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

Vue3的computed和watch

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

目錄

1、computed

2、computed完整寫法

?3、watch

4、watch監(jiān)聽對象具體屬性

5、watch 監(jiān)聽reactive數(shù)據(jù)


1、computed

基于現(xiàn)有的數(shù)據(jù)計(jì)算出新的數(shù)據(jù)

<script setup >

import {ref,computed} from 'vue'
const num=ref(1)
const doubleNum=computed(()=>{
    return num.value*2
})
const goods=ref([
    {
    id:1001,
    price:5000,
    name:'小米手機(jī)'
},
{
    id:1002,
    price:4000,
    name:'華為手機(jī)'
},
{
    id:1003,
    price:6000,
    name:'三星手機(jī)'
}
])
//篩選出價(jià)格大于等于5000的商品
const filterGoods=computed(()=>{
    return goods.value.filter(item=>item.price>=5000)
})
</script>

<template>
<div>hello,world</div>
<p>{{ num }}- {{ doubleNum }}</p>
<p>{{ filterGoods }}</p>
</template>

<style scoped>

</style>

Vue3的computed和watch,vue筆記,vue.js,前端,javascript

2、computed完整寫法

<script setup >

import {ref,computed} from 'vue'
const firstName=ref('')
const lastName=ref('')
//簡寫  只提供get
// const fulName=computed(()=>{
//     return firstName.value+lastName.value
// })
//完整寫法

const fulName=computed({
    //get:function(){} 與 get() {} 等價(jià)
    //get:()=>{}  箭頭函數(shù)不可簡寫
    get(){
        return firstName.value+lastName.value
    },
    set(newV){
        firstName.value=newV.substring(0,1)
        lastName.value=newV.substring(1)
    }
})
</script>

<template>
<div>hello,world</div>
<input type="text" v-model="firstName">
<input type="text" v-model="lastName">
<input type="text" v-model="fulName">
</template>

<style scoped>

</style>

?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ù)組 ? 第二個(gè)參數(shù)回調(diào)函數(shù)

3.立刻調(diào)用 (第三個(gè)參數(shù)位一個(gè)對象,里面可放immediate:true)

4.深度監(jiān)聽 (第三個(gè)參數(shù)位一個(gè)對象,里面可放 deep:true)

<script setup >

import {ref,watch} from 'vue'
const num=ref(1)
// const age=ref(10)
const obj=ref({
    id:1,
    name:'電視',
    price:3000
})
// 1  偵聽一個(gè)數(shù)據(jù)
//第一個(gè)參數(shù):監(jiān)聽的數(shù)據(jù)    第二個(gè)回調(diào)函數(shù)

watch(num,(newV,oldV)=>{
    console.log(newV,oldV)
})
//2  偵聽多個(gè)數(shù)據(jù)
//第一個(gè)參數(shù)監(jiān)聽的數(shù)據(jù)構(gòu)成的數(shù)組
//第二個(gè)參數(shù)回調(diào)函數(shù)
// watch([num,age],([newNum, newAge],[oldNum, oldAge])=>{
//   console.log(newNum, newAge);
// })

// watch([num,age],([newNum,newAge],[oldNum,oldAge])=>{
//     console.log(newNum,newAge)
// })
 
 //3  立刻調(diào)用   immediate
//  watch(num,(newV,oldV)=>{
//     console.log('立刻調(diào)用')
//     console.log(newV,oldV)
//  },{
//     immediate:true
//  })

//4  深度監(jiān)聽
watch(obj,(newV,oldV)=>{
    console.log(newV,oldV)
},{
    deep:true
})
const changeObj=()=>{
    obj.value.price -=200
}


</script>

<template>
<div>hello,world</div>
<p>{{ num }}</p>
<p>{{ obj }}</p>
 <button @click="changeObj">修改obj</button>
</template>

<style scoped>

</style>

4、watch監(jiān)聽對象具體屬性

<script setup >

import {ref,watch} from 'vue'
const obj=ref({
    id:1,
    name:'電視',
    price:3000
})
//深度監(jiān)聽
// 第一個(gè)參數(shù) 可以是函數(shù),函數(shù)的返回值就是被偵聽的數(shù)據(jù)

//分開監(jiān)聽數(shù)據(jù)的變化
//只有價(jià)格改變才監(jiān)聽
// watch(()=>obj.value.price,(newV,oldV)=>{
//     console.log(newV,oldV)
// },{
//     deep:true
// })

// watch(()=>obj.value.name,(newV,oldV)=>{
//     console.log(newV,oldV)
// },{
//     deep:true
// })

//監(jiān)聽數(shù)據(jù)變化寫在一起
watch([()=>obj.value.price,()=>obj.value.name,()=>obj.value.id],(newV,oldV)=>{
    console.log(newV[0],oldV)
},{
    deep:true
})
const changeObj=()=>{
    // obj.value.price -=200
    obj.value.name='手機(jī)'
    // obj.value.id=200
}
</script>

<template>
<div>hello,world</div>
<button @click="changeObj">修改obj</button>
</template>

<style scoped>

</style>

5、watch 監(jiān)聽reactive數(shù)據(jù)

watch監(jiān)控reactive數(shù)據(jù),假如需要深層次監(jiān)控屬性需要手動(dòng)開啟deep:true或省略

watch監(jiān)控ref數(shù)據(jù),深層次監(jiān)控屬性 ,必須手動(dòng)開啟deep:true,不能省略,省略相當(dāng)于默認(rèn) false

<script setup >

import {reactive,watch} from 'vue'
const user=reactive({
    name:'admin',
    age:18,
    job:{
        jobName:'web前端工程師',
        salary:6000
    }
})
//偵聽的是reactive數(shù)據(jù),默認(rèn)對第一層屬性開啟deep:true,此時(shí)無論有沒有傳入deep選項(xiàng)
//偵聽的是ref引用數(shù)據(jù),默認(rèn)deep:false,監(jiān)控的對象屬性發(fā)生改變不會(huì)被監(jiān)控到

watch(user,(newV,oldV)=>{
    console.log(newV)
},{
    deep:true //關(guān)閉深度監(jiān)控?zé)o效
})

const changeAge=()=>{
    user.age++
    //假如需要偵聽深層次數(shù)據(jù),需要手動(dòng)開啟deep:true
    user.job.salary += 2000
}
</script>

<template>
<div>hello,world</div>
<p>{{ user }}</p>
<button @click="changeAge">修改age</button>
</template>

<style scoped>

</style>

?文章來源地址http://www.zghlxwxcb.cn/news/detail-821001.html

到了這里,關(guān)于Vue3的computed和watch的文章就介紹完了。如果您還想了解更多內(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)文章

  • 【vue3】關(guān)于watch與computed的用法看這個(gè)就ok

    【vue3】關(guān)于watch與computed的用法看這個(gè)就ok

    ??博主:初映CY的前說(前端領(lǐng)域) ,??本文核心:watch()與computed的使用【vue2中watch|computed概念詳解】,本文將介紹在vue3中怎么使用這兩者技能 【前言】vue2當(dāng)中有這兩個(gè)技能,那么vue3中的watch與computed是怎么用呢? 注意點(diǎn):對 reactive 自身的修改則不會(huì)觸發(fā)監(jiān)聽。 一定得注意不

    2023年04月10日
    瀏覽(23)
  • vue3中,ref()、reactive()、computed()、watch() 和 watchEffect()的區(qū)別

    ref()、reactive()、computed()、watch() 和 watchEffect() 是 Vue 3 中常用的響應(yīng)式處理函數(shù),它們的主要區(qū)別如下: ref():ref() 函數(shù)用于將一個(gè)普通的 JavaScript 值轉(zhuǎn)化為響應(yīng)式對象。它返回一個(gè)具有 value 屬性的對象,我們可以通過訪問 value 屬性來獲取或修改值。當(dāng)我們對 ref() 返回的對象

    2024年02月22日
    瀏覽(28)
  • Vue3 計(jì)算屬性和偵聽器實(shí)戰(zhàn)(computed、watch)——簡易點(diǎn)餐頁面

    Vue3 計(jì)算屬性和偵聽器實(shí)戰(zhàn)(computed、watch)——簡易點(diǎn)餐頁面

    這篇文章記錄一下 Vue3 計(jì)算屬性和偵聽器 (computed、watch) 實(shí)戰(zhàn)的內(nèi)容,這篇文章我們在有計(jì)算屬性和偵聽器的基礎(chǔ)上,我們來制作一個(gè)簡易點(diǎn)餐頁面,接下來我們一起來從零到一開始制作。 計(jì)算屬性和偵聽器相關(guān)文章推薦: 深入與淺談 Vue 中計(jì)算屬性和偵聽器的區(qū)別和使用

    2024年02月09日
    瀏覽(34)
  • 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)
  • 學(xué)習(xí)Vue:computed VS watch

    在 Vue.js 中,Vue 實(shí)例與數(shù)據(jù)綁定不僅限于簡單的插值表達(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 中的 computed 和 watch 的區(qū)別

    在Vue.js中, computed 和 watch 是兩個(gè)常用的屬性,用于處理數(shù)據(jù)的監(jiān)聽和響應(yīng)。它們在功能上有一些相似之處,但也有一些重要的區(qū)別。本文將介紹 computed 和 watch 的區(qū)別,并提供相關(guān)的代碼示例。 Vue 中的 computed 和 watch 都是用來觀察數(shù)據(jù)變化的,但它們的用途和特點(diǎn)略有不同

    2024年02月07日
    瀏覽(23)
  • 淺談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)
  • 【Vue】watch、methods 和 computed 的區(qū)別?

    一、基本說明 1.computed: 計(jì)算屬性將被混入到 Vue 實(shí)例中。所有 getter 和 setter 的 this 上下文自動(dòng)地綁定為 Vue 實(shí)例。 2.methods: methods 將被混入到 Vue 實(shí)例中??梢灾苯油ㄟ^ VM 實(shí)例訪問這些方 法,或者在指令表達(dá)式中使用。方法中的 this 自動(dòng)綁定為 Vue 實(shí)例。 3.watch: 觀察

    2024年02月09日
    瀏覽(17)
  • 【Vue學(xué)習(xí)筆記5】Vue3中的響應(yīng)式:ref和reactive、watchEffect和watch

    【Vue學(xué)習(xí)筆記5】Vue3中的響應(yīng)式:ref和reactive、watchEffect和watch

    所謂響應(yīng)式就是界面和數(shù)據(jù)同步,能實(shí)現(xiàn)實(shí)時(shí)更新。 Vue 中用過三種響應(yīng)式解決方案,分別是 defineProperty、Proxy 和 value setter。Vue 2 使用的方案是 defineProperty API。Vue3中使用的方案是Proxy和value setter。 vue3中實(shí)現(xiàn)響應(yīng)式數(shù)據(jù)的方法是使用ref和reactive。 reactive更推薦去定義復(fù)雜的數(shù)

    2024年02月03日
    瀏覽(33)
  • Vue 中的 watch 和 computed 的區(qū)別是什么?

    在 Vue.js 中, watch 和 computed 都是用來監(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)行

    2024年02月05日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包