美文网首页
Vue.js的计算属性

Vue.js的计算属性

作者: CodeMT | 来源:发表于2019-09-27 09:58 被阅读0次

一、起因?

虽然在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作。在模板中放入太多的逻辑会让模板过重且难以维护。比如:

<div id="example">
 {{ message.split('').reverse().join('') }}
</div>
  • 这样,模板不再简单和清晰。在实现反向显示 message 之前,你应该通过一个函数确认它。所以,Vue.js提供了计算属性来让我们去处理实例中的复杂逻辑。

  • 计算属性 (computed properties) 就是不存在于原始数据中,而是在运行时实时计算出来的属性。

案例如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  </title>计算属性</title>
</head>
<body>
  <div id="app">
    <p>{{fullname}}</p>
    <p>{{reverse}}</p>
  </div>
<script src="js/vue.js"></script>
<script>
  var app = new Vue({
    el:'#app',
    data:{
      firstname:'张',
      lastname:'三丰'
    },
    // 计算属性选项
    computed:{
      fullname:function(){
        return this.firstname + this.lastname;
      },
      reverse:function(){
        return (this.firstname + this.lastname).split(' ').reverse().join(' ');
      }
    }
  })
</script>
</body>
</html>
  • 在上面的案例中,计算属性fullnamereverse 的值始终取决于firstnamelastname。计算属性默认只有 getter ,当然在需要时我们也可以提供一个setter 。计算属性被设计出来的目的在于:getter 是干净无副作用的。

二、计算属性 和 Methods的区别?

当页面重新渲染(不是刷新)的时候,计算属性不会变化,直接读取缓存使用,适合较大量的计算和改变频率较低的属性;而method,就是当页面重新渲染的时候(页面元素的data变化,页面就会重新渲染),都会重新调用method
如果不希望有缓存,我们可以用method取代computed

疑惑:为什么需要缓存?

  • 假设我们有一个重要的计算属性 A ,这个计算属性需要一个巨大的数组遍历和做大量的计算。然后我们可能有其他的计算属性依赖于 A 。如果没有缓存,我们将不可避免的多次执行 A 的 getter !

三、计算属性的setter方法

计算属性默认只有 getter ,不过在需要时你也可以提供一个 setter

<body>
  <div id="app">
    <p>{{fullName}}</p>
  </div>
<script src="js/vue.js"></script>
<script>
  var app = new Vue({
    el:'#app',
    data:{
      firstName:'Tom',
      lastName:'jack'
    },
    computed:{
      fullName:{
        // get方法
        get:function(){
          return this.firstName + ' ' + this.lastName
        }
        // setter方法
        set:function(newValue){
          var names = newValus.split(' ');
          this.firstName = names[0];
          this.lastName = names[names.length - 1];
        }

      }
    }
  })
</script>
</body>

运行结果:

相关文章

  • vue.js学习笔记二

    Vue.js 计算属性 计算属性关键词: computed。 计算属性在处理一些复杂逻辑时是很有用的。 可以看下以...

  • vuejs—计算属性

    上篇文章 介绍了vue.js的基础语法,这篇文章我们将一起学习vue.js的计算属性。什么是计算属性,为什么要用这...

  • vue.js 框架

    vue.js 中文网 vue框架 vue是一个 mvvm 框架 node下载vue.js命令 vue属性 计算属性...

  • 《Vue.js 实战》基础篇(上)

    本章内容:认识 Vue.js、数据绑定、计算属性、内置指令 一、初始 Vue.js 1.1 Vue.js 是什么 ...

  • Vue.js——计算属性

    计算属性 由上面的代码可以看出,双大括号里面的文本操作比较多,而且这样的形式可能会造成代码的冗余和繁复,所以vue...

  • vue.js 计算属性

    在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作。在模板中放入太多的逻辑会让模板过重且难以维护。例如...

  • Vue.js 计算属性

    计算属性关键词: computed。 计算属性在处理一些复杂逻辑时是很有用的。 可以看下以下反转字符串的例子: 实...

  • Vue.js 计算属性

    计算属性 如果模板中的表达式过长,或逻辑复杂时,代码会变得臃肿甚至难以阅读和维护,此时应该使用计算属性。 所有的计...

  • Vue.js 计算属性

    1.含义及用法 在html模版中绑定数据时,如果需要的数据不是简单的data中的数据,而是需要将一个或者多个数据计...

  • Vue.js 计算属性

    计算属性关键词:computed计算属性在处理一些复杂逻辑时是很有用的。可以看下一下反转字符串的例子:实例1 实例...

网友评论

      本文标题:Vue.js的计算属性

      本文链接:https://www.haomeiwen.com/subject/ljxbyctx.html