计算属性、方法和侦听器

本文探讨了Vue.js中计算属性、方法和侦听器的区别。计算属性具有缓存机制,当依赖数据不变时能提高性能;方法在不相关数据变化时仍会调用函数,效率较低;侦听器虽可缓存但写法较冗余。在功能实现上,建议优先考虑计算属性,其次使用侦听器,最后选择方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算属性

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>计算属性、方法和侦听器</title>
    <script src="./vue.js"></script>
</head>

<body>
    <div id="root">
        {{fullName}}
    </div>

    <script>

        var app = new Vue({
            el: '#root',
            data: {
                firstname: "hello",
                secendname: "world"
            },
            //计算属性
            computed: {
                fullName: function () {
                    return this.firstname + " " + this.secendname
                }
            }
        })
    </script>
</body>

</html>

计算属性在使用的时候会有一个缓存,其依赖的data,在没有发生变化的时候,计算属性就不会在进行调用了,会相对的提高了性能

方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>计算属性、方法和侦听器</title>
    <script src="./vue.js"></script>
</head>

<body>
    <div id="root">
        {{fullName()}}
    </div>

    <script>

        var app = new Vue({
            el: '#root',
            data: {
                firstname: "hello",
                secendname: "world"
            },
            methods:{
                fullName: function() {
                    return this.firstname + " " + this.secendname
                }
            }
        })
    </script>
</body>

</html>

方法使用没有计算属性效率高,因为每次不相干的数据被修改,方法属性还是会调用相关的函数

侦听器

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>计算属性、方法和侦听器</title>
    <script src="./vue.js"></script>
</head>

<body>
    <div id="root">
        {{fullName}}
    </div>

    <script>

        var app = new Vue({
            el: '#root',
            data: {
                firstname: "hello",
                secendname: "world",
                fullName:"hello world"
            },
            watch:{
                firstname: function(){
                    this.fullName = this.firstname + " " + this.secendname
                },
                secendname: function(){
                    this.fullName = this.firstname + " " + this.secendname
                }
            }
        })
    </script>
</body>

</html>

相比于计算属性,虽然侦听器也可以缓存数据,但是写法冗余

总结

如果实现一个功能3种方法都可以实现,选择上面 计算属性>>侦听器>>方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值