![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
前端开发
文章平均质量分 92
记录前端开发过程中提炼出的经验点滴
枫之谷的花蘑菇
这个简述很懒,没有填写这人。
展开
-
使用依赖注入框架管理多实例服务(以 InversifyJS 为例)
以上就是我在使用依赖注入框架重构项目时,对于多实例服务管理的一些思考与实践。它成功地帮我完成了整个项目的重构,也让我对于依赖注入框架有了更深的理解。但于此同时,我也在实践中发现了许多依赖注入框架的局限性。但这并不说明依赖注入框架不够完善,而是说明了依赖注入作为一种设计模式与思想,它有其匹配的设计哲学。例如在上述的例子中,真正按照框架的最佳实践来说,我们应当只为服务注入行为抽象,而不是某些具体的变量数据,这对代码可测性来说非常重要。原创 2023-06-27 17:07:06 · 282 阅读 · 0 评论 -
浅析依赖注入框架的生命周期(以 InversifyJS 为例)
在上一篇介绍了 VSCode 的依赖注入设计,并且实现了一个简单的 IOC 框架。但是距离成为一个生产环境可用的框架还差的很远。行业内已经有许多非常优秀的开源 IOC 框架,它们划分了更为清晰地模块来应对复杂情况下依赖注入运行的正确性。这里我将以 InversifyJS 为例,分析它的生命周期设计,来弄清楚在一个优秀的 IOC 框架中,完成一次注入流程到底是什么样的。原创 2023-02-10 17:46:02 · 733 阅读 · 0 评论 -
有向无环图的模型设计与应用
从 TodoList 说起对于我们程序开发者来说,想要学习一个框架,从开发一个 TodoList 项目做起,这就像学习语言先学会写 Hello world 一样基础。但其实,简单的 TodoList 里面,同样可以蕴含一些复杂的算法思想。设想一下,今天需要完成若干个任务,需要规划一下工作流,可以通过 TodoList 记录下来。但与普通的线性工作不同的是,每条工作任务可能会有若干个前置工作,那么现在我们该如何分配工作顺序呢?其实这样的事情在我们自己平时的工作中经常遇到,而我们通常的做法是:优先找出不需原创 2020-11-06 15:38:56 · 868 阅读 · 0 评论 -
实现一个版本自动控制的 IndexedDB
随着现代大型项目复杂度的提升,渲染一个 WEB 页面需要的数据越来越多,在多次打开并渲染的过程中,有许多数据都是重复并且不常更新的,因此这部分的数据需要通过浏览器缓存来缓解网络压力,同时提升页面打开速度。IndexedDB 的存储方案比较在 IndexedDB 推出以前,浏览器数据的存储方案就已经有了一些实现,例如 cookie,localStorage 等等。cookie 不用多说,每次都需要随着请求全部带给服务端,并且大小只有可怜的 4KB。cookie 用来做存储数据缓存必然会给网络请求带来原创 2020-08-21 11:28:03 · 1025 阅读 · 0 评论 -
利用 React 高阶组件实现一个面包屑导航
什么是 React 高阶组件React 高阶组件就是以高阶函数的方式包裹需要修饰的 React 组件,并返回处理完成后的 React 组件。React 高阶组件在 React 生态中使用的非常频繁,比如react-router 中的 withRouter 以及 react-redux 中 connect 等许多 API 都是以这样的方式来实现的。使用 React 高阶组件的好处在工作中,我们经常会有很多功能相似,组件代码重复的页面需求,通常我们可以通过完全复制一遍代码的方式实现功能,但是这样页面的原创 2020-07-03 23:53:11 · 4566 阅读 · 0 评论 -
redux深入理解
redux深入理解(一)学习react的过程中,redux的熟练掌握是一个绕不开并且很难绕过去的坎。接触react已经有一段时间了,甚至连一些小项目都用react做了不少了,但redux的使用上还是有诸多不理解不熟练的地方。正好有很长一段时间没有更过博客了,就从这里着手,增强一下自己的理解。先从解决全局事件的问题开始我们都知道,react的数据流是单向的,这样做是为了保证数据同源。...原创 2017-12-05 17:52:47 · 366 阅读 · 0 评论