vue源码之纯函数缓存

作者: 趁你还年轻233 | 来源:发表于2017-10-13 16:33 被阅读100次

先欣赏一段大神解释

函数缓存的目的在于:将处理过的数据缓存,减少函数执行次数,提升前端程序性能。

最关键代码:return cache[str]; || (cache[str] = fn(str))

传统的数据处理,每次都需要经过函数。

function tradition(str){
  return str.charAt(0).toUpperCase() + str.slice(1)
}

var foo = tradition("Frank")
var bar = tradition("Kai")
var baz = tradition("Kai")

缓存的数据处理,只有当缓存中没有时才经过函数处理。

/**
 * Create a cached version of a pure function.
 */
function cached (fn) {
  var cache = Object.create(null);
  return (function cachedFn (str) {
    var hit = cache[str];
    return hit || (cache[str] = fn(str))
  })
}
var capitalize = cached(function (str) {
  return str.charAt(0).toUpperCase() + str.slice(1)
});
//未缓存
var lastName = capitalize("Frank")
var firstName = capitalize("Kai")
//已缓存
var secondName = capitalize("Kai")

建议采用Chrome控制台的开发面板进行测试,6个变量命名处打断点,采用setp into(F11)的形式,去查看每个变量命名时的完整调用过程,对比未缓存和已缓存处的call stack,就会立刻理解函数缓存的原理。

努力成为优秀的前端工程师!

相关文章

  • vue源码之纯函数缓存

    先欣赏一段大神解释 函数缓存的目的在于:将处理过的数据缓存,减少函数执行次数,提升前端程序性能。 最关键代码:re...

  • 函数式编程(二)—— 纯函数

    目录 纯函数纯函数的概念Lodash——纯函数的代表体验Lodash纯函数的好处可缓存可测试并行处理副作用【函数式...

  • DiskLurCache 源码总结

    DiskLurCache 使用教程 源码解析 使用 打开缓存 打开缓存函数public static DiskLr...

  • 函数式编程入门系列一

    函数引用透明性替换模型命令式,声明式与抽象纯函数纯函数产生可测试的代码并发代码可缓存管道与组合纯函数是数学函数 j...

  • Javascript纯函数缓存

    前言 最近看了gitbook上的一本书,名叫《JS函数式编程指南》,看到了一个之前从未想到的小方法,做个笔记,记录...

  • vue实例挂载----渲染到页面

    vue实例如何挂载----执行$mount到底做了什么 函数内部逻辑 函数源码 mountComponent函数 ...

  • 纯函数

    纯函数概念 相同输入必然得到相同输出,且函数必定有参数和返回值。 纯函数的好处 -可缓存 -可测试(如单元测试中,...

  • new Vue的具体流程

    new Vue做了啥? 打开源码,先找到Vue的构造函数,在vue/src/core/instance/index...

  • Vue源码解析-Vue和实例对象

    先看一下源码中关于Vue函数的定义(稍稍简化),摘自Vue 2.6.11。 看看 Vue就是一个函数,当然可以把它...

  • NQ-CACHE 函数缓存,支持纯函数和返回值为Promise的

    NQ-CACHE 函数缓存,支持纯函数和返回值为Promise的函数 项目地址 https://github.co...

网友评论

    本文标题:vue源码之纯函数缓存

    本文链接:https://www.haomeiwen.com/subject/orgzyxtx.html