大家好,欢迎来到今天的讲座。我是你们的老朋友,那个在 React 源码里摸爬滚打了几年,头发虽然还在但发际线已经决定离家出走的资深编程专家。 今天我们不聊怎么写业务代码,不聊 map 和 reduce 的区别,我们来聊点“底层”的。来点硬核的,来点让你们在面试时能吹出牛皮,但在深夜写代码时又会想砸键盘的——React 的持久化数据结构。 你们有没有过这种经历?当你试图在 React 里修改一个深层的对象,比如 state.user.profile.settings.theme,然后你发现你不得不写一个递归函数,一层一层地 … 展开,最后写出来的代码像是一堆乱七八糟的意大利面? 是的,我们都在受苦。React 的创始人 Jordan Walke 一定知道,他看着我们写 JSON.parse(JSON.stringify(state)),心里估计在想:“这群人到底在干嘛?” 为了拯救我们的发际线,也为了拯救 React 的性能,React 引入了一套非常精妙的设计:不可变状态。但仅仅不可变还不够,为了配合 React 15 之后引入的 Fiber 架构,React 还必须拥抱 持久化数 …
继续阅读“React 的持久化数据结构实践:论不可变状态(Immutable State)与 Fiber 双缓存架构的内存契合度”