浅谈Vue中计算属性(computed)和方法(methods)的差别
浅谈Vue中计算属性(computed)和方法(methods)的差别
源码地址
- methods方法和computed计算属性,两种方式的最终结果确实是完全相同 
- 计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值,多次访问计算属性会立即返回之前的计算结果,而不必再次执行函数。计算属性是基于他们的依赖进行缓存的,只有在相关依赖发生改变时,才会重新求值, 
- methods方法,每当触发重新渲染时,调用方法将总会再次执行函数。 
- 使用计算属性还是 methods 取决于你是否需要缓存,当遍历大数组和做大量计算时,应当使用 计算属性,除非你不希望得到缓存。 
- 对于任何复杂逻辑,你都应当使用计算属性 
例如
<body>
	<div id="app">
		{{f}}
		<br>
		<hr>
		{{ff()}}
	</div>
	<script>
		var k = 10;
		var app = new Vue({
			el: '#app',
			data: {
				a: 5,
				b: 1
			},
			computed: {
				f() {
					console.log("f");
					return this.a + this.b + k;
				}
			},
			methods: {
				ff() {
					console.log("ff");
					return this.a + this.b + k;
				}
			}
		})
	</script>
</body>
运行结果如下:

 
接下来我们在控制台进行一系列操作帮助理解它们的区别

 我们发现,当我们改变全局变量k的值时,再次调用方法时结果会发生改变,而计算属性的值却并没有发生改变,(因为k并不是Vue实例里data属性的值)
浅谈Vue中计算属性(computed)和方法(methods)的差别的更多相关文章
- 浅谈Vue中计算属性computed的实现原理
		虽然目前的技术栈已由Vue转到了React,但从之前使用Vue开发的多个项目实际经历来看还是非常愉悦的,Vue文档清晰规范,api设计简洁高效,对前端开发人员友好,上手快,甚至个人认为在很多场景使用V ... 
- vue中计算属性computed方法内传参
		vue中computed计算属性无法直接进行传参 如果有传参数的需求比如说做数据筛选功能可以使用闭包函数(也叫匿名函数)实现 例如: 在上篇博客vue安装使用最后的成绩表练习中的过滤功能的实现: &l ... 
- 浅谈CSS3中display属性的Flex布局
		浅谈CSS3中display属性的Flex布局 最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex 1 .container { 2 display: fle ... 
- Vue.js 计算属性(computed)
		Vue.js 计算属性(computed) 如果在模板中使用一些复杂的表达式,会让模板显得过于繁重,且后期难以维护.对此,vue.js 提供了计算属性(computed),你可以把这些复杂的表达式写到 ... 
- vue的计算属性computed和监听器watch
		<template> <div> this is A.vue <br> <!--计算属性--> <label for="msg" ... 
- vue中计算属性的get与set方法
		计算属性get set方法 在vue的计算属性中,所定义的都是属性,可以直接调用 正常情况下,计算属性中的每一个属性对应的都是一个对象,对象中包括了set方法与get方法 computed:{ ful ... 
- Vue之计算属性Computed和属性监听Watch,Computed和Watch的区别
		一. 计算属性(computed) 1.计算属性是为了模板中的表达式简洁,易维护,符合用于简单运算的设计初衷. 例如: <div id="app"> {{ myname ... 
- vue中计算属性中的set和get
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <body& ... 
- 浅谈vue中的计算属性和侦听属性
		计算属性 计算属性用于处理复杂的业务逻辑 计算属性具有依赖性,计算属性依赖 data中的初始值,只有当初始值改变的时候,计算属性才会再次计算 计算属性一般书写为一个函数,返回了一个值,这个值具有依赖性 ... 
随机推荐
- HTML 网页开发、CSS 基础语法——十一. CSS常用样式
			文字三属性 1.颜色color 2.字体font-family ① 常用字体 常用的中文字体: 宋体 SimSum 微软雅黑 Microsoft YaHei 常用的英文字体: 如果不设置字体属性,不 ... 
- P4233-射命丸文的笔记【NTT,多项式求逆】
			正题 题目链接:https://www.luogu.com.cn/problem/P4233 题目大意 随机选择一条有哈密顿回路的\(n\)个点的竞赛图,求选出图的哈密顿回路的期望个数. 对于每个\( ... 
- Redis之品鉴之旅(二)
			2)hash类型,上代码 using (RedisClient client = new RedisClient("127.0.0.1", 6379, "12345&qu ... 
- AtCoder Beginner Contest 221 A~E题解
			目录 A - Seismic magnitude scales B - typo C - Select Mul D - Online games E - LEQ 发挥比较好的一场,就来搓篇题解. F ... 
- 【LeetCode】300.最长递增子序列——暴力递归(O(n^3)),动态规划(O(n^2)),动态规划+二分法(O(nlogn))
			算法新手,刷力扣遇到这题,搞了半天终于搞懂了,来这记录一下,欢迎大家交流指点. 题目描述: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度. 子序列是由数组派生而来的序列,删除(或不删 ... 
- Django整理(四) - URL配置
			1. URL配置 一.需求 1. 需求:在浏览器访问URL地址 http://127.0.0.1:8000/users/index 时,显示hello django信息 2. 实现 i. 需要编写一个 ... 
- Linux基本命令 和 Regex 正则表达式
			Linux基本命令 和 Regex 正则表达式 Regex 基本语法 常用匹配规则 [aeiouAEIOU] # 从中随机选择一个 [0-9]{4} # 从中选择4个 .* # 匹配任意字符 \w # ... 
- 【UE4】虚幻引擎技术直播汇总(含中英文直播)
			B站虚幻引擎官方账号 中文直播 [中文直播]第35期 | 使用GIS在UE中创造真实地球风貌 | Epic 周澄清 [中文直播]第34期 | 包教包会的Epic MegaGrants申请之道 | Ep ... 
- aritest发送测试报告到邮件
			#!/usr/bin/env python # -*- coding=utf-8 -*- __CreateAt__ = '2020/4/19-17:34' import shutil from air ... 
- Noip模拟13 2021.7.13:再刚题,就剁手&&生日祭
			T1 工业题 这波行列看反就非常尴尬.....口糊出所有正解想到的唯独行列看反全盘炸列(因为和T1斗智斗勇两个半小时...) 这题就是肯定是个O(n+m)的,那就往哪里想,a,b和前面的系数分开求,前 ... 
