computed

⭐️ 计算属性就是对data里面的数据进行计算得到的一个新的属性。它依赖于用于计算的数据,模板近似于函数调用,那么它和函数有什么区别,内部又是怎么实现的,让我们一起来探索一下计算属性。

计算属性和函数有什么区别

  1. 在使用时,computed可以作为属性,而函数则当做方法调用
  2. computed可以配置gettersetter,因此可以赋值,而函数不行
  3. computed无法接收多个参数,而函数可以
  4. computed具有缓存,而函数没有

接下来深入了解一下 computed 是怎么实现的吧。

初始化computed

function initComputed (vm: Component, computed: Object) {const watchers = vm._computedWatchers = Object.create(null)for (const key in computed) {const userDef = computed[key]const getter = typeof userDef === 'function' ? userDef : userDef.get// component-defined computed properties are already defined on the// component prototype. We only need to define computed properties defined// at instantiation here.if (!(key in vm)) {defineComputed(vm, key, userDef)}}
}function initWatch (vm: Component, watch: Object) {for (const key in watch) {const handler = watch[key]if (Array.isArray(handler)) {for (let i = 0; i < handler.length; i++) {createWatcher(vm, key, handler[i])}} else {createWatcher(vm, key, handler)}}
}

浅析 computed相关推荐

  1. vue方法调用失败后多次调用_浅析Vue中 computed / watch / methods的区别

    思考:请说下Vue中computed 和 watch 的区别( 面试题 ) 构造选项 computed / watch / methods computed ● computed 起初构想 在Vue的 ...

  2. 服务器虚拟交换机到网卡不通,浅析虚拟化环境网卡绑定模式

    作者:郭国华,新炬网络高级技术专家. 随着云计算的发展,虚拟化技术已普遍应用于各类型企业,同时虚拟化为服务器带来密集的网络吞吐压力已成为影响云计算发展的最大性能瓶颈之一,为了最大化提升主机网络性能,对 ...

  3. python opencv调用摄像头并追踪移动物体,浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估...

    使用摄像头追踪人脸由于血液流动引起的面部色素的微小变化实现实时脉搏评估. 效果如下(演示视频): 由于这是通过比较面部色素的变化评估脉搏所以光线.人体移动.不同角度.不同电脑摄像头等因素均会影响评估效 ...

  4. 低代码开源项目 Designable 应用和源码浅析

    使用说明 页面示例 集成代码 import React from "react"; import {Designer, //设计器根组件,用于下发上下文Workbench, //用 ...

  5. 13个Vue3中的全局API的源码浅析汇总整理

    前言 不知不觉vue-next的版本已经来到了3.1.2,最近对照着源码学习vue3的全局Api,边学习边整理了下来,希望可以和大家一起进步. 我们以官方定义.用法.源码浅析三个维度来一起看看它们.下 ...

  6. Word2vec原理浅析及gensim中word2vec使用

    本文转载于以下博客链接:Word2vec原理浅析:https://blog.csdn.net/u010700066/article/details/83070102: gensim中word2vec使 ...

  7. 浅析 JavaScript 中的 函数 uncurrying 反柯里化

    柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...

  8. 浅析Python中bytes和str区别

    本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示, ...

  9. computed set 自定义参数_完全理解Vue的渲染watcher、computed和user watcher

    作者:Naice https://segmentfault.com/a/1190000023196603 这篇文章将带大家全面理解vue的watcher.computed和user watcher,其 ...

最新文章

  1. JavaScript深入理解对象方法——Object.entries()
  2. C# 实现对接电信交费易自动缴费 续(winio/winring0 自动填密码)
  3. 自制Ghost XP SP3 启动光盘(一)
  4. 双边滤波--OpenCV实现
  5. python的jupyter的使用教程-强大的jupyter,python开发者的福音
  6. 3. nginx的请求转发算法,如何配置根据权重转发
  7. 三层架构与设计模式思想部署企业级数据库业务系统开发
  8. 部署Java web项目到阿里云服务器
  9. 数字逻辑之组合逻辑电路
  10. steam失落的方舟入库python脚本
  11. 机器人操作系统、自动驾驶等研发工具整理
  12. notifyIcon 用法
  13. 我的费曼学习法之路「世界上最好的学习法:费曼学习法」
  14. c51编译器+linux,C51 开源编译器SDCC学习笔记-安装
  15. 安装QQ时创建目录失败的解决办法
  16. C语言低配版扫雷游戏
  17. [单片机框架][bsp层][cx32l003][bsp_adc] ADC配置和使用
  18. 服务降级(服务回退)
  19. Java | Java 入门学习路线
  20. 包装类中Integer类最全详解

热门文章

  1. 适用于苹果电脑的数据恢复软件介绍
  2. 官宣:FISCO BCOS加入“国家队”,成为BSN首个国产底层技术平台
  3. requests爬虫请求头获得方法
  4. 百度移动端开始用网站品牌名代替网址显示
  5. 世界十大高端接链环品牌排名,第一名你绝对想不到!
  6. 说说Kindle那些事
  7. Mac 安装Powerline
  8. Virtualbox虚拟机网络配置详解
  9. C# json转实体类或直接获取
  10. HDU1716-全排列