Vue中watchEffect和computed的应用方式

<template>
    <div>
        <h2>{{counter}}</h2>
        <button @click="changeCounter"></button>
        <h3>{{user.name}}</h3>
        <button @click="cheangeUserName">改变user名字</button>
    </div>
</template>

<script >
// reactive可以引用对象类型
 import { reactive, computed } from 'vue';

export default{

    setup(props, context) {
        
        const counter = ref(0)
        function changeCounter(){
            counter.value++
        }
       
       const suser = reactive({
            name:"阿斯顿",
            age:10
        })

        function cheangeUserName(){
            user.name="李四"
        }
        //watch(侦听的响应式引用,回调函数)
        watch(counter,(newval,oldval)=>{
            console.log("newval-----------",newval);
            console.log("oldval-----------",oldval);
        })

        //watchEffect(回调函数)注意不需要指点监听属性,组件初始化的时候会执行一次回调,自动手机依赖
        watchEffect(()=>{
            console.log("newval-----------",newval);
            console.log("oldval-----------",oldval);
        })

        // watch和watchEffect的区别
        // 1.watchEffect不需要指定监听的属性,自动手机依赖,只要在回调中引用响应式的属性,只要这些属性发生改变,回调就会发生改变
        

        //computed的用法
        const msg = ref("helloworld")
        const reverseMsg=computed(()=>{
            return msg.value.split("").reverse().join("")
        })

        const user = reactive({
            name:"张三",
            age:44,
            reverseMsg:computed(()=>{
                return msg.value.split("").reverse().join("")
            })
        })
        return{counter,changeCounter,user}; 
    }
}
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值