zoukankan      html  css  js  c++  java
  • Vue_计算属性

    在插值表达式中使用js表达式是非常方便的,而且也经常被用到。

    但是如果表达式的内容很长,就会显得不够优雅,而且后期维护起来也不方便,例如下面的场景,我们有一个日期的数据,但是是毫秒值:

    data:{
        birthday:1529032123201 // 毫秒值
    }

    我们在页面渲染,希望得到yyyy-MM-dd的样式:

    <h1>您的生日是:{{
        new Date(birthday).getFullYear() + '-'+ new Date(birthday).getMonth()+ '-' + new Date(birthday).getDay()
        }}
    </h1>

    虽然能得到结果,但是非常麻烦。

    Vue中提供了计算属性,来替代复杂的表达式:

    var vm = new Vue({
        el:"#app",
        data:{
            birthday:1429032123201 // 毫秒值
        },
        computed:{
            birth(){// 计算属性本质是一个方法,但是必须返回结果
                const d = new Date(this.birthday);
                return d.getFullYear() + "-" + d.getMonth() + "-" + d.getDay();
            }
        }
    })
    • 计算属性本质就是方法,但是一定要返回数据。然后页面渲染时,可以把这个方法当成一个变量来使用。

    页面使用:

        <div id="app">
           <h1>您的生日是:{{birth}} </h1>
        </div>

    我们可以将同一函数定义为一个方法而不是一个计算属性。

    两种方式的最终结果确实是完全相同的。

    然而,不同的是计算属性是基于它们的依赖进行缓存的

    计算属性只有在它的相关依赖发生改变时才会重新求值。

    这就意味着只要birthday还没有发生改变,多次访问 birthday 计算属性会立即返回之前的计算结果,而不必再次执行函数。

     

    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    Murano Weekly Meeting 2015.11.04
    Python pdb调试
    Neutron命令测试5
    Neutron命令测试4
    Neutron命令测试3
    Neutron命令测试2
    Neutron命令测试1
    Murano Weekly Meeting 2015.10.20
    Murano Weekly Meeting 2015.10.13
    wireshark分析dhcp过程
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11868063.html
Copyright © 2011-2022 走看看