Vue基础之动态绑定数据(methods方法和计算属性对比)

1.template中写入布局

   <!-- 1.methods动态绑定值 -->

    动态添加1:<input v-model="firstName"/>

    动态添加2:<input v-model="secondName"/><br/>

    全名(methods完成):<span>{{addTotalName()}}</span><br/>

    <!--2. computed 计算属性动态绑定值 -->

    全名(计算属性完成):<span>{{fullName}}</span>

2.script代码

data中写入属性

<!-- 1.methods动态绑定 -->

methods: {

addTotalName(){

      //Vue中methods中this是指向Vue,在Vue外的this指向window

      return this.firstName+"-"+this.secondName;

    }

}

<!-- 2.计算属性动态绑定 -->

计算属性fullName本身不存在,通过已有的"属性"计算而来,即Vue中data中自定义的属性

  原理:底层借助了Object.defineProperty中的getter和setter

  计算属性最终会出现在Vue本身上,直接用即可,如以上直接拿fullName即可

  computed:{

    //fullName为计算出来的新属性

      fullName:{

        //get有什么用?当有人读取fullName时,get会被调用,且返回值为fullName的值

        //get什么时候调用?

        //1.由于computed计算属性有缓存机制,在初次读取fullName时,会调用

        //2.所依赖的数据(this.firstName,this.secondName)发生变化时候会调用

        get(){

            return this.firstName+"-"+this.secondName;

        },

        //set是fullName需要被修改的时候调用,value为修改后的值

        set(value){

            //可以通过value.split("-")[0],[1]获取到新的值赋值给this.firstName和this.secondName

        }

      }

  }


总结:计算属性相对于methods数据绑定,其特点是有缓存,methods没有缓存,fullName重复被读取且依赖数据无变化时,只调用一次,故相对于methods方法绑定更能节省资源,性能更加优化;methods则在重复读取时候被多次调用,即读取一次调用一次。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容