Vue之computed属性

理解computed

  • computed用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行双向数据绑定展示出结果或者用作其他处理

  • computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化,举例:购物车里面的商品列表和总金额之间的关系,只要商品列表里面的商品数量发生变化,或减少或增多或删除商品,总金额都应该发生变化。这里的这个总金额使用computed属性来进行计算是最好的选择

——转自https://www.cnblogs.com/gunelark/p/8492468.html

一、计算属性

  • 例如:
<div id="app">
            <div v-for="result in results">
                <p>{{result.name}}:{{result.price}}元</p>    
            </div>
            <p>总价为:{{allprice}}元</p>
            </div>
            <script type="text/javascript">
                var app=new Vue({
                    el:'#app',
                    data:{
                    results:[
                        {
                            name:'apple',
                            price:5
                        },
                        {
                            name:'banana',
                            price:10
                        },
                        {
                            name:'orange',
                            price:7
                        }
                    ]           
                    }

定义3个水果,我们想要计算所有水果的总价格。我们不能使用filters或expressions来完成这个任务。

  • filters:用于简单的数据格式,在应用程序的多个位置都需要它
  • expressions:不允许使用流操作或其他复杂的逻辑。他们应该保持简单
    这时候,计算属性就派上了用场,我们往computed里添加如下:
computed:{
                            allprice:function(){
                            var allprice=0;
                            var len=this.results.length;
                            for(var i=0;i<len;i++){
                                allprice+=this.results[i].price;
                            }
                            return allprice;
                    }
                    }

效果如下:


效果

二、computed与method

  • 将上面computed中的allprice函数方法放入method中,{{allprice}}改为{{allprice()}},效果都是相同的。虽然这两种方式输出的结果是相同的,但是性能将遭受毁灭性的打击。使用这种方法:allprice()方法在每次页面渲染时都会被执行一次,这也说明Vue中计算属性是基于它们的依赖进行缓存的,而方法是不会基于它们的依赖进行缓存的。从而使用计算属性要比方法性能更好

——部分摘自https://www.cnblogs.com/gunelark/p/8492468.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在我的年度目標中,有一項是個人理財。在過去十年裡,我的理財工具只是靠我的大腦,完全依賴銀行的月清單。可是由於項目太...
    KevinYung阅读 1,733评论 0 1
  • 清晨六点半,迷津在睡梦中的我悄然被房间外的声音叫醒,而心中却以早已因开学的复杂情绪清醒。打开灯,拉开门,感...
    心恩丶惠动阅读 1,508评论 0 0
  • #天才在左,疯子在右#一天看完一本书,难吗?难!我花一个月没有看完《悲惨世界》,后来花半个小时看了缩减版,故事很精...
    一点点小阅读 3,698评论 0 0
  • 年少轻狂肆意挥洒 那些懵懂的 无知的 说不清道不明的情愫 然而—— 在漫长的日子里 终学会了—— 隐忍 收起自己的...
    宋筱锦阅读 1,846评论 0 1

友情链接更多精彩内容