05-Vue的Computed(计算属性)


计算属性的基本使用

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <h2>{{firstName + ' ' + lastName}}</h2>
      <h2>{{firstName}} {{lastName}}</h2>
      <h2>{{getFullName()}}</h2>
      <h2>{{fullName}}</h2>
    </div>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          firstName: "Lebron",
          lastName: "James"
        },
        computed: {
          fullName: function() {
            return this.firstName + " " + this.lastName
          }
        },
        methods: {
          getFullName() {
            return this.firstName + " " + this.lastName
          }
        }
      })
    </script>
  </body>
</html>
1.快速理解

计算属性可以理解成是一种加强版的data变量,它可以对data中变量做出更改或者合并,而使用时只需像使用data变量一样用mustache语法即可,注意使用时不要加括号


计算属性的复杂操作

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <h2>总价格:{{totalPrice}}</h2>
    </div>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          books: [
            { id: 110, name: "Unix编程艺术", price: 119 },
            { id: 111, name: "代码大全", price: 105 },
            { id: 112, name: "深入理解计算机原理", price: 98 },
            { id: 113, name: "现代操作系统", price: 87 }
          ]
        },
        computed: {
          totalPrice: function() {
            let result = 0
            for (let book of this.books) {
              result += book.price
            }
            return result
          }
        }
      })
    </script>
  </body>
</html>
1.进阶操作

这节讲的是对data变量的高级操作,比如filter(),map(),reduce()等一些函数方法的运作。尤其是ES6语法的强大和便捷大家都知道,现在越来越受人欢迎 。

2.computed和methods的区别

methods相信大家都不陌生,可以将点击事件、变量操作等等封装成一个方法,但是如果这里的操作只是变量合并,比如以上代码只是求和,我们就不必封装方法而是用computed。


计算属性的setter和getter

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <h2>{{fullName}}</h2>
    </div>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          firstName: "Kobe",
          lastName: "Bryant"
        },
        computed: {
          fullName: {
            set: function(newValue) {
              const names = newValue.split(" ")
              this.firstName = names[0]
              this.lastName = names[1]
              console.log(newValue + "修改成功")
            },
            get: function() {
              return this.firstName + " " + this.lastName
            }
          }
        }
      })
    </script>
  </body>
</html>
1.set()和get()讲解

作为程序员,我感觉给大家讲set和get就是在侮辱大家智商,但是想到可能有人会不知道这里还有get和set,所以还是要说一下。get就是在使用该计算属性时的返回值,set就是修改该计算属性。重点是这两个方法里面都可以有方法过程,即可以操作变量,比如get时我可以在后面追加一个字符串再返回。


第一次记录自己的学习笔记,如果您发现问题,欢迎指点。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝带915

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值