首页 > 语言 > JavaScript > 正文

Vue计算属性的使用

2024-05-06 15:13:23
字体:
来源:转载
供稿:网友

我们都知道在Vue构造函数的参数对象中有一个【data】属性,该属性值是一个对象,该对象是对数据的代理,是一个键值对并且时刻与页面表现是一致的,但是这里面只能是简单的键值对,不能拥有业务逻辑,并且由于【data】中的属性属于同一个生命周期,所以如果我们需要某一个属性是依赖于另外一个属性时,在【data】中是做不到的,于是Vue为我们提供了【计算属性】

一、计算属性

1.1 概述

计算属性归根结底也是属性,它也是跟表现层是时刻同步的,虽然我们可以在插值中对数据进行各种处理,但是插值中的表达式处理毕竟只能用于简单的运算,不能拥有太多的业务逻辑。

<body>  <div id="app">    <h1>{{name.toUpperCase()}}</h1>    <!-- <h1>BLUE</h1> -->  </div></body><script>  let vm = new Vue({    el: "#app",    data: {      name: 'blue'    }  })</script>

上面代码是我们熟悉的在插值中使用表达式,但是这里面我们不能写入业务代码。

1.2 计算属性语法

在构造函数的参数对象中有一个【computed】属性,该属性就是用于定义计算属性的,该对象中的【键】也就是我们的计算属性,与【data】不同的是,计算属性的键值是一个【拥有返回值的函数】,该函数中可以访问到【data】中的所有属性。

<body>  <div id="app">    <h1>{{rs}}</h1>    <!-- <h1>BLUE LOVE PINK</h1> -->  </div></body><script>  let vm = new Vue({    el: "#app",    data: {      hs: 'BLUE',      wf: "PINK"    },    computed: {      rs:function(){        return `${this.hs} LOVE ${this.wf}`      }    }  })</script>

上面代码属性【rs】是定义的一个计算属性,该属性值是通过【data】中的两个属性值计算得到,返回一个拼接的字符串(这儿使用了ES6的【模板字符串】)并且当【data】中的相关值变化之后,【rs】属性都会进行重新计算。

可能刚开始对计算属性会有些疑惑,比如上面的例子我把代码写成下面这样子也是可以的

<body>  <div id="app">    <h1>{{hs}} LOVE {{wf}}</h1>    <!-- <h1>BLUE LOVE PINK</h1> -->  </div></body><script>  let vm = new Vue({    el: "#app",    data: {      hs: 'BLUE',      wf: "PINK"    }  })</script>

上面的代码运行效果和我们使用计算属性的效果是一样的,但是这样的写法只适用于简单的处理,【计算属性可以处理更复杂的业务逻辑】,比如我们根据【data】中的一个属性值进行数据请求用于构建一个属性,我们就必须使用计算属性了。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选