【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 | 是 | 是 | 不能 | 否 | 否 |
| 方法 | 是 | 否 | 能 | 是 | 否 |
| 计算属性 | 是 | 是 | 否 | 是 | 是 |
转发请标明出处:https://www.cnblogs.com/WilsonPan/p/12755476.html
【Vue】基础(数据 & 计算属性 & 方法)的更多相关文章
- Vue基础之计算属性
适用场景 设想一个场景,你需要得到一个复杂运算/逻辑的返回值,利用模板内的表达又过长且难以阅读和维护,这时计算属性就可以很好的解决你的问题.看下面的例子: <!DOCTYPE html> ...
- 03 . Vue基础之计算属性,组件基础定义和使用
vue组件 fetch请求组件 fetch XMLHttpRequest是一个设计粗糙的API, 配置和调用方式非常混乱,而且基于事件的异步模型写起来不友好,兼容性不好. <!DOCTYPE h ...
- 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 代码实 ...
- vue笔记-模板,计算属性,class与style,data属性
数据和方法 1:只有当实例被创建时 data 中存在的属性才是响应式的,也可以预定义一些空的属性,唯一的意外就是Object.freeze(obj),这会阻止修改现有的属性;也就是说一个数据在放到根实 ...
- Vue的computed计算属性是如何实现的
一个开始 有如下代码,full是一个计算属性,开始,他的值是'hello world',1s后,msg变成了‘I like’, full的值同步变成了'I like world';其原理解析来看一下. ...
- Vue学习之vue中的计算属性和侦听器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 简述Vue中的计算属性
1.什么是计算属性 如果模板中的表达式存在过多的逻辑,那么模板会变得臃肿不堪,维护起来也异常困难,因此为了简化逻辑出现了计算属性: <template> <div id=" ...
- Vue.js 源码分析(六) 基础篇 计算属性 computed 属性详解
模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护,比如: <div id="example">{{ messag ...
- Vue.js之计算属性(computed)、属性监听(watch)与方法选项(methods)
vue.js官网:https://cn.vuejs.org/v2/guide/components-registration.html 一.计算属性-computed 1. 作用:能够避免数据冗余,通 ...
- Vue 过滤器与计算属性
过滤器 V1.x 版本 过滤器基础 过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数.Vue有很多很便利的过滤器,可以参考官方文档,http://cn.vuejs.org/ ...
随机推荐
- 在线文件大小(bit,bytes,KB,MB,GB,TB)转换换算
https://www.bejson.com/convert/filesize/ 在线文件大小(bit,bytes,KB,MB,GB,TB)转换换算 在线文件大小转换,bit,bytes,KB,MB, ...
- NPM 自动管理包依赖
简介 包依赖的实例 可以时刻保持 模块是最新的js版本 code { "name":"d3-project-template", "version&q ...
- Phenomenon•Observation•Uncertainty/Certainty•Statistical law•Random phenomenon•Theory of Probability
Mathematics: the logic of certainty. Statistics: the logic of uncertainty. Certainty/Uncertainty: Ph ...
- 洛谷题解 | P3383 【模板】线性筛素数
题目思路 先思考最朴素的素数筛法.即对于每个数 \(n\),检查它是否能被任意小于 \(\sqrt{n}\) 的整数整除.如果不能,则 \(n\) 是素数.这种筛法显然是低效的. 逆向思考,上述素数筛 ...
- 编辑器下实现Update
private void OnEnable() { if (Application.isEditor) { SceneView.onSceneGUIDelegate += OnScene; } } p ...
- Django实时通信实战:WebSocket与ASGI全解析(下)
一.实战:构建实时聊天室 环境准备 下面将使用 Django Channels 构建一个多用户实时聊天室.Django Channels的介绍.安装与配置,参考上篇. 实现 WebSocket 消费者 ...
- git ls-remote -h
正确命令及作用 git ls-remote --heads <远程仓库URL> # 或简写为 git ls-remote -h <远程仓库URL> 输出示例 $ git ls- ...
- -sh: ./example: No such file or directory
接上文的问题,咨询了隔壁部门的技术大佬后,认为是使用的交叉编译工具太旧了.因此在ARM官网重新下载工具包: 下载到虚拟机后配置,完成后运行source命令使配置生效: source /etc/prof ...
- Unity Redis 订阅
1.安装Redis 1.1 安装redis Ubuntu下可以使用该命令安装Redis sudo apt update sudo apt install redis-server 1.2 启动Redi ...
- 深入解析Java启动参数:从基础配置到高级调优
全面指南:内存管理·GC策略·性能监控·避坑实践 一.启动参数的核心分类与作用 Java启动参数是连接应用代码与JVM的桥梁,直接影响性能.稳定性和诊断能力.根据规范层级可分为三类: 类型 前缀/语法 ...