Vue中watch与computed区别

文章讨论了Vue框架中watch和computed属性的区别,强调watch可以执行异步操作而computed不能。此外,还提出了编写Vue相关函数时关于this指针的两个原则:1)Vue管理的函数应使用普通函数确保this正确;2)非Vue管理的函数(如定时器回调)用箭头函数保持this指向。
摘要由CSDN通过智能技术生成
<body>
    <div id="root">
        姓:<input type="text" v-model="firstName"><br/><br/>
        名:<input type="text" v-model="lastName"><br/><br/>
        全名:<span>{{fullName}}</span><br/><br/>
    </div>
</body>
    <script>
        const vm = new Vue({
            el:'#root',
            data:{
                firstName: '张',
                lastName: '三',
                fullName:'张-三'
            },
            watch:{
                firstName(newValue){
                    setTimeout(()=>{
                        this.fullName = newValue+'-'+this.lastName
                    },1000);
                 },
                 lastName(newValue){
                    this.lastName = this.firstName+'-'+newValue
                 }
            }
        })
    </script>

效果:更改姓之后延迟一秒显示改后的全名

 

总结:

 computed和watch之间的区别:

        1.computed能完成的功能,watch都可以完成

        2.watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作。

两个重要的小原则:

        1.所被Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象。

        2.所有不被Vue所管理的函数(定时器的回调函数、ajax的回调函数等),最好写成箭头函数,这样this的指向才是vm 或 组件实例对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林代码er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值