vue computed 与 methods动态计算写法

computed 所依赖的数据发生改变时,计算属性才会重新计算,并进行缓存;当改变其他数据时,computed 属性 并不会重新计算,从而提升性能。

new Vue({
  el: '#root',
  template: `
    <div>
      <span>Name: {{name}}</span>
      <span>Name: {{getName()}}</span>
    </div>
  `,
  data: {
    firstName: 'Lucky',
    lastName: 'Mask'
  },
  computed: {
    name () {
      return `${this.firstName} ${this.lastName}`
    }
  },
  methods: {
    getName () {
      return `${this.firstName} ${this.lastName}`
    }
  }
})

复制代码
Vue.js中,computed属性也可以使用get和set方法来定义。如果要给computed属性传递参数,可以使用JavaScript的闭包来实现。 例如,假设我们要计算一个矩形的面积,可以定义一个名为`area`的computed属性,使用get和set方法来实现: ``` computed: { area: { get() { return this._area }, set(value) { this._area = value } } } ``` 在这个例子中,我们定义了一个名为`area`的computed属性,使用get和set方法来获取和设置计算出的面积。为了给这个computed属性传递参数,我们可以使用JavaScript的闭包,在getter函数中返回一个接收参数的函数,在setter函数中调用这个函数并传入计算出的面积。 例如,我们可以定义一个名为`calculateArea`的函数,用于计算矩形的面积,并将这个函数作为getter函数的返回值: ``` computed: { area: { get() { return (width, height) => { return width * height } }, set(value) { // 调用calculateArea函数计算面积 const area = this.calculateArea(value.width, value.height) this._area = area } } }, methods: { calculateArea(width, height) { return width * height } } ``` 在这个例子中,我们将`area`的getter函数定义为一个接收width和height参数的函数,用于计算矩形的面积。在setter函数中,我们调用`calculateArea`函数计算出面积,并将面积存储在一个名为`_area`的变量中。 这样,我们就可以通过给`area`传递width和height参数来计算出矩形的面积了: ``` this.area = { width: 10, height: 20 } // 设置矩形的宽度和高度 console.log(this.area(10, 20)) // 计算矩形的面积,并输出结果 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值