先从一个例子分析

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

转发请标明出处:https://www.cnblogs.com/WilsonPan/p/12755476.html

【Vue】基础(数据 & 计算属性 & 方法)的更多相关文章

  1. Vue基础之计算属性

    适用场景 设想一个场景,你需要得到一个复杂运算/逻辑的返回值,利用模板内的表达又过长且难以阅读和维护,这时计算属性就可以很好的解决你的问题.看下面的例子: <!DOCTYPE html> ...

  2. 03 . Vue基础之计算属性,组件基础定义和使用

    vue组件 fetch请求组件 fetch XMLHttpRequest是一个设计粗糙的API, 配置和调用方式非常混乱,而且基于事件的异步模型写起来不友好,兼容性不好. <!DOCTYPE h ...

  3. Vue学习之--------计算属性(2022/7/9)

    文章目录 1.计算属性 1.1 计算属性实现 1.1.1 基础知识 1.1.2 代码实例 1.1.3 测试效果 1.2 计算属性简写 1.2.1 简写代码 1.3 使用插值语法实现 1.3.1 代码实 ...

  4. vue笔记-模板,计算属性,class与style,data属性

    数据和方法 1:只有当实例被创建时 data 中存在的属性才是响应式的,也可以预定义一些空的属性,唯一的意外就是Object.freeze(obj),这会阻止修改现有的属性;也就是说一个数据在放到根实 ...

  5. Vue的computed计算属性是如何实现的

    一个开始 有如下代码,full是一个计算属性,开始,他的值是'hello world',1s后,msg变成了‘I like’, full的值同步变成了'I like world';其原理解析来看一下. ...

  6. Vue学习之vue中的计算属性和侦听器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 简述Vue中的计算属性

    1.什么是计算属性 如果模板中的表达式存在过多的逻辑,那么模板会变得臃肿不堪,维护起来也异常困难,因此为了简化逻辑出现了计算属性: <template> <div id=" ...

  8. Vue.js 源码分析(六) 基础篇 计算属性 computed 属性详解

    模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护,比如: <div id="example">{{ messag ...

  9. Vue.js之计算属性(computed)、属性监听(watch)与方法选项(methods)

    vue.js官网:https://cn.vuejs.org/v2/guide/components-registration.html 一.计算属性-computed 1. 作用:能够避免数据冗余,通 ...

  10. Vue 过滤器与计算属性

    过滤器 V1.x 版本 过滤器基础 过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数.Vue有很多很便利的过滤器,可以参考官方文档,http://cn.vuejs.org/ ...

随机推荐

  1. 在线文件大小(bit,bytes,KB,MB,GB,TB)转换换算

    https://www.bejson.com/convert/filesize/ 在线文件大小(bit,bytes,KB,MB,GB,TB)转换换算 在线文件大小转换,bit,bytes,KB,MB, ...

  2. NPM 自动管理包依赖

    简介 包依赖的实例 可以时刻保持 模块是最新的js版本 code { "name":"d3-project-template", "version&q ...

  3. Phenomenon•Observation•Uncertainty/Certainty•Statistical law•Random phenomenon•Theory of Probability

    Mathematics: the logic of certainty. Statistics: the logic of uncertainty. Certainty/Uncertainty: Ph ...

  4. 洛谷题解 | P3383 【模板】线性筛素数

    题目思路 先思考最朴素的素数筛法.即对于每个数 \(n\),检查它是否能被任意小于 \(\sqrt{n}\) 的整数整除.如果不能,则 \(n\) 是素数.这种筛法显然是低效的. 逆向思考,上述素数筛 ...

  5. 编辑器下实现Update

    private void OnEnable() { if (Application.isEditor) { SceneView.onSceneGUIDelegate += OnScene; } } p ...

  6. Django实时通信实战:WebSocket与ASGI全解析(下)

    一.实战:构建实时聊天室 环境准备 下面将使用 Django Channels 构建一个多用户实时聊天室.Django Channels的介绍.安装与配置,参考上篇. 实现 WebSocket 消费者 ...

  7. git ls-remote -h

    正确命令及作用 git ls-remote --heads <远程仓库URL> # 或简写为 git ls-remote -h <远程仓库URL> 输出示例 $ git ls- ...

  8. -sh: ./example: No such file or directory

    接上文的问题,咨询了隔壁部门的技术大佬后,认为是使用的交叉编译工具太旧了.因此在ARM官网重新下载工具包: 下载到虚拟机后配置,完成后运行source命令使配置生效: source /etc/prof ...

  9. Unity Redis 订阅

    1.安装Redis 1.1 安装redis Ubuntu下可以使用该命令安装Redis sudo apt update sudo apt install redis-server 1.2 启动Redi ...

  10. 深入解析Java启动参数:从基础配置到高级调优

    全面指南:内存管理·GC策略·性能监控·避坑实践 一.启动参数的核心分类与作用 Java启动参数是连接应用代码与JVM的桥梁,直接影响性能.稳定性和诊断能力.根据规范层级可分为三类: 类型 前缀/语法 ...