【Vue】基础(数据 & 计算属性 & 方法)

先从一个例子分析

复制代码
<template>
  <div>
    <p>source array:{{numbers}}</p>
    <p>sorted array:{{sortArray()}}</p>
    <p>3 in array index : {{findIndex(3)}}</p>
    <p>totalNumbers : {{totalNumbers}}</p>
    <button @click="changeArray()">修改数组</button>
  </div>
</template>

<script>
export default {
  data() {
    return { numbers: [1, 5, 3, 9, 2, 4, 8] };
  },
  computed: {
    totalNumbers() {
      console.log("compute total");
      return this.numbers.reduce((total, val) => total + val);
    }
  },
  methods: {
    sortArray() {
      return this.numbers.slice(0).sort((a, b) => a - b);
    },
    findIndex(value) {
      console.log("find index");
      return this.numbers.findIndex(m => m === value);
    },
    changeArray() {
      for (let i = 0; i < this.numbers.length; i++) {
        this.$set(this.numbers, i, Math.floor(Math.random() * 100));
      }
    }
  }
};
</script>
复制代码

 运行效果

 

1. 首先定义一组数组(数据)
2. 定义计算属性,计算数组总和(计算属性)
3. 定义3个方法,排序数组,查找指定值下标,修改数组(方法)

 

数据

data对象最适合纯粹的数据:如果想将数据放在某处,然后在模板、方法或者计算属性中使用

 

计算属性

计算属性适用于执行更加复杂的表达式,这些表达式往往太长或者需要频繁地重复使用

计算属性会有缓存,依赖的数据没有变化,会直接从缓存里取出,这个可以打印console.log,计算属性可以验证。所以计算属性适合用于密集cpu计算。

计算属性可以设置读写

total:{
    get(){
        ....
    }
    set(){
        ...
    }
}

 

方法

如果希望为模板添加函数功能时,最好使用方法,通常是传递参数,根据参数得到不同结果。


 

data对象 vs 方法 vs 计算属性

 可读可写接受参数需要运算缓存
data 不能
方法
计算属性
posted @   WilsonPan  阅读(1916)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示