• computed 、methods 和 watch


    computed 和 methods
      在new Vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。
    computed称为计算属性,顾名思义,计算就要返回一个计算的结果,所以,当我们要处理大量的逻辑,但是最后要取得最后的结果的时候可以用computed;
    简单示例:
    要求:
    <input type="text v-model="num1"><input type="text v-model="num2">
    现在要返回num1和num2的和;

    <script>
        new Vue({
            el:"#box",
            data:{
                    num1:0,
                    num2:0
                    }
            computed:{    
                    result:function(){
                            return this.num1 + this.num2    
                            // 计算属性必须有一个返回值
                    }
            }
         })
    </script>

    methods:是方法的意思,在js中,我们把一些函数叫做方法,一般情况下,要触发这个方法就要执行,要执行就要有一个源来触发,所以就需要一个事件源。
    这是和computed的一点不同之处;
    methods的示例:

    <utton @click="do()">点击弹出</button>
    <script>
        new Vue({
            el:"#box",
            data:{
                    num1:0,
                    num2:0
                    }
            methods:{    
                    do:function(){
                          alert('ok')
                          //这里根据情况,可以返回有返回值也可以没有返回值。
                    }
            }
         })
    </script>


    对比computed 和 methods:
    computed计算的结果如果不发生改变就不会触发result这个函数。而methods中一般都是定义的需要事件触发的一些函数。每次只要触发事件,
    就会执行对应的方法。如果把computed中的方法写到method中会浪费性能。
    computed必须返回一个值页面绑定的才能取得值,而methods中可以只执行逻辑代码,可以有返回值,也可以没有

    computer 和 watch

    //这是computer的
    var var vm = new Vue({
      el: '#demo',
      data: {
        firstName: 'Foo',
        lastName: 'Bar',
        fullName: 'Foo Bar'
      },
      watch: {
        firstName: function (val) {
          this.fullName = val + ' ' + this.lastName
        },
        lastName: function (val) {
          this.fullName = this.firstName + ' ' + val
        }
      }
    })
    //这是watch的说法
    
    var var vm = new Vue({
      el: '#demo',
      data: {
        firstName: 'Foo',
        lastName: 'Bar'
      },
      computed: {
        fullName: function () {
          return this.firstName + ' ' + this.lastName
        }
      }
    })

    总结computer和watch:

    计算属性是计算属性,观察是观察。

    计算属性顾名思义就是通过其他变量计算得来的另一个属性,fullName在它所依赖firstName,lastName这两个变量变化时重新计算自己的值。

    另外,计算属性具有缓存。计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会重新求值。这就意味着只要 lastName和firstName都没有发生改变,多次访问 fullName计算属性会立即返回之前的计算结果,而不必再次执行函数。

    而观察watch是观察一个特定的值,当该值变化时执行特定的函数。例如分页组件中,我们可以检测页码执行获取数据的函数。

    可以再详细的查看一下文档:https://cn.vuejs.org/v2/guide...

  • 相关阅读:
    龙东平:持续提升个人认知的三大底层逻辑
    【科创人独家】美信拓扑创始人一乐:如何登山不是最重要的问题,山峰才是
    【科创人独家】搜狐快站金庸:有情有义,90后技术创业者的问剑之路
    【科创人独家】军哥手记程军:我的2020,先打个60分吧
    【科创人独家】云风:从创业到招安,自由的游戏玩家+务实的程序员
    C语言--->指针
    位运算(一)
    平方根倒数快速算法
    IntelliJ IDEA 配置《算法》(第四版)
    深度学习(一):Python神经网络——手写数字识别
  • 原文地址:https://www.cnblogs.com/HuaKor/p/7994795.html
Copyright © 2020-2023  润新知