zoukankan      html  css  js  c++  java
  • Vue-比较方法、计算属性和侦听器

      分别用方法、计算属性和侦听器实现当fristName和lastName改变时,fullName跟着改变。

    一、方法:

    html:

    <div id="app">
        {{fullName()}}
        {{age}}
    </div>

     js:

      var app=new Vue({
        el:'#app',
        data:{
          firstName:'li',
          lastName:'zhao',
          age:18
        },
        methods:{
          fullName:function(){
              console.log('计算了一次')
              return this.firstName+' '+this.lastName
          }
        }
      })

     

      当age发生改变时,fullName()执行了一次。

    计算属性:

    html:

    <div id="app">
        {{fullName}}
        {{age}}
    </div>

    js:

    var app=new Vue({
        el:'#app',
        data:{
          firstName:'li',
          lastName:'zhao',
          age:18
        },
        computed:{
          fullName:function(){
            console.log('计算了一次')
            return this.firstName+' '+this.lastName
          }
        }
    })

      当age发生改变时,由于firstName,lastName没有发生改变,所以fullName读的是缓存中的,计算并没有执行,性能较好。 

    侦听器

     html:

    <div id="app">
        {{fullName}}
        {{age}}
    </div>

     js:

    var app=new Vue({
        el:'#app',
        data:{
          firstName:'li',
          lastName:'zhao',
          fullName:'li zhao',
          age:18
        },
        watch:{
          firstName:function(){
            console.log('计算了一次')
            return this.fullName = this.firstName+' '+this.lastName
          },
          lastName:function(){
            console.log('计算了一次')
            return this.fullName = this.firstName+' '+this.lastName
          }
        }
      })

     

      当age发生改变时,由于firstName,lastName没有发生改变,所以fullName读的是缓存中的,计算并没有执行,性能较好;但是需要侦听firstName和lastName,代码量多。

    总结 

      watch和computd可以从缓存中读数据,性能较好,只要相关数据没有改变就不执行;方法性能不好,只要页面数据有改变,方法就会执行;

      对于某种功能,三者都能实现读情况下,优先选computd。

  • 相关阅读:
    MySQL基础操作语句
    TCP网络编程中connect() 、listen() 和accept()三者之间关系
    java集合---HashMap,Hashtable 和concurrenthashMap
    深入Java---垃圾回收
    数据库MYSQL操作基础(一)
    寻找二叉搜索树错误的节点
    采用先序遍历 和层次遍历递归建立二叉树--进行封装
    CMS垃圾回收
    jsp:incloud用法
    springboot跨域请求
  • 原文地址:https://www.cnblogs.com/superlizhao/p/9620906.html
Copyright © 2011-2022 走看看