Vue2中的计算属性和侦听器的使用

目录

  • 计算属性

  • 侦听器

  • 计算属性与侦听器的区别

计算属性

关键词:computed
用于通过计算改变原数据得到想要的数据效果

示例1

示例两个
1、反转字符串
2、首字母大写

	<div id="app">
        <h1>计算属性:{{msg}}</h1>
        <h1>{{msg2}}</h1>
        <!-- 首字母大写,其余小写 -->
        <!-- toUpperCase()转大写toLowerCase()转小写 -->
        <h1>原:{{zm}}</h1>
        <h1>{{zh}}</h1>
    </div>
var vm=new Vue({
        el:"#app",
        data:{
            msg:"Hello chain",
            zm:"nihaoya"
        },
        computed:{
            msg2:function(){
                return this.msg.split('').reverse().join('');
            },
            zh:function(){
                return this.zm.substring(0,1).toUpperCase()+this.zm.substring(1).toLowerCase();
            }
        }
    })

效果图:
在这里插入图片描述
成功~

示例2

写法二:放到方法中

	<div id="app">
        <h1>原:{{zm}}</h1>
        <h1>{{zh}}</h1><h2>{{zh}}</h2>
        <h1>方法:{{msg3()}}</h1><h2>方法:{{msg3()}}</h2>
    </div>
var vm=new Vue({
       el:"#app",
        data:{
            msg:"Hello chain",
            zm:"nihaoya"
        },
        computed:{
            zh:function(){
                console.log("计算中....");
                return this.zm.substring(0,1).toUpperCase()+this.zm.substring(1).toLowerCase();
            }
        },
        methods:{
            msg3:function(){
                console.log("方法运行中....");
                return this.zm.substring(0,1).toUpperCase()+this.zm.substring(1).toLowerCase();
            }
        }
    })

效果图:在这里插入图片描述
区别:一眼便知


两者区别

调用方式不同,函数需要加()
放在computed中只会执行一次
放在methods中调用多少次就会执行多少次
相对来讲放在computed效率高!!!

侦听器

关键词:watch
响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的

示例

<div id="app">
        <input type="text" v-model="firstName">
        <h2>{{fullName}}</h2>
    </div>
 var vm=new Vue({
        el:"#app",
        data:{
            firstName:"碰",
            lastName:"磕",
            fullName:""
        },
        watch:{
            firstName:function(val){
                this.fullName=val+this.lastName;
            },
            lastName:function(val){
                this.fullName=this.firstName+val;
            }
        }
    })

效果图:
在这里插入图片描述
通过修改firstName,fullName也会跟着改变~

计算属性与侦听器的区别

  1. 计算属性的应用场景是计算的内容需要依赖多个属性的情况 侦听器的应用场景是计算的内容依赖一个属性的情况
  2. 计算属性缓存结果时每次都会重新创建变量
    而侦听器是直接计算,不会创建变量保存结果
    也就意味着,数据如果会反复的发生变化,计算很多次的情况下,计算属性的开销将会更大,也就意味着这种情况不适合使用计算属性,适合使用侦听器
    那么,如果一个数据反复会被使用,但是它计算依赖的内容很少发生变化的情况下,计算属性会缓存结果,就更加适合这种情况。
  3. computed的结果是通过return返回的,而watch不需要return。
  4. watch中的参数可以得到侦听属性改变的最新结果,而computed函数没有这种参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

碰磕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值