computed计算属性与methods

总结methods与computed区别:

  1. 1 调用方式不同。computed直接以对象属性方式调用,不需要加括号,而methods必须要函数执行才可以得到结果。
  2. 2 绑定方式不同。methods与compute纯get方式都是单向绑定,不可以更改输入框中的值。compute的get与set方式是真正的双向绑定。
  3. 3 是否存在缓存。methods没有缓存,调用相同的值计算还是会重新计算。competed有缓存,在值不变的情况下不会再次计算,而是直接使用缓存中的值。
  4. <div id='app'>
             数学:<input type='text' v-model='mathScore'>
             英语:<input type='text' v-model='englishScore'><br>
             
             <!-- 注意:调用methods的方法一定要加括号 -->
             总分(methods方式):<input type='text' v-model='sumScore()'><br>
             
             <!-- 注意:调用computed里面的方法不要加括号 -->
             总分(computed,纯get方式):<input type='text' v-model='sumScore1'><br>
             总分(computed,get+set方式):<input type='text' v-model='sumScore2'>
         </div>
     
         <script>
             var vm = new Vue({
                 el: '#app',
                 data: {
                     mathScore: 80,
                     englishScore: 60
                 },
                 methods: {
                     sumScore: function () {
                         console.log('methods方式调用!')
                         return (this.mathScore) + (this.englishScore)
                     }
                 },
                 computed: {
                     // 默认是纯get方式,也是单项绑定
                     sumScore1: function () {
                         console.log('compute的纯get方式调用');
                         return (this.mathScore) + (this.englishScore);
                     },
                     // 采用get加set方式
                     sumScore2: {
                         get: function () {
                             console.log('compute的get方式调用');
                             return (this.mathScore ) + (this.englishScore );
                         },
                     // 当在输入框中更改了总分后,两项成绩就会分别 
                        取到新总分的平均值,从而实现双向绑定          
                         set: function (newValue) {
                             console.log('compute的set方式调用');
                             var avgScore = newValue / 2;
                             this.mathScore = avgScore;
                             this.englishScore = avgScore;
                         }
                     }
                 }
             })
         </script>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

瓜田里快乐的猹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值