美文网首页前端开发
【Vue】基础(数据 & 计算属性 & 方法)

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

作者: WilsonPan | 来源:发表于2020-04-22 19:45 被阅读0次

    先从一个例子分析

    <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 不能
    方法
    计算属性

    相关文章

      网友评论

        本文标题:【Vue】基础(数据 & 计算属性 & 方法)

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