zoukankan      html  css  js  c++  java
  • 【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 不能
    方法
    计算属性
  • 相关阅读:
    机会主义和理想主义
    从 http://snowolf.iteye.com/blog/735294 收藏 Java加密技术(十二)——*.PFX(*.p12)&个人信息交换文件
    Demystifying ‘Sys is undefined’
    server.mappath
    C# 发送http请求的几类方法
    几款用于防破解的软件
    机器学习之嵌套交叉验证
    机器学习之生成多项式和交互特征
    机器学习之调参
    dataframe列联表等操作
  • 原文地址:https://www.cnblogs.com/WilsonPan/p/12755476.html
Copyright © 2011-2022 走看看