深入浅出 solid.js 源码 (三十)—— 总结

516 阅读3分钟

这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情

到这里 solid 的系列文章就结束了,我个人还是很喜欢 solid 这个开发库的。solid 是一个比较新的东西,本身没有历史包袱,因此我们在源码几乎不会看到任何兼容处理的代码逻辑,整体看上去很清爽。相比而言,react 经历过从 class component 到 hook 发展的一个过程,在源码中需要兼容两种写法,而二者的设计理念又是有很大差异的,最终 react 团队也是非常努力的试图给我们提供一个尽量一致的用户体验,虽然实际写下来还会有很多不一致,还是会给开发者带来困扰。这是一个很通用的问题,一旦一个东西做的足够好影响范围足够大,那么它的每一个修改都要极其谨慎。然而技术确是在不断更迭的,现在看起来已经很完善的设计可能后来又会发现更好的处理方案,这时候修改起来就很痛苦。因为极少数无法和旧版表现统一的问题,react 的 concurrent mode 难产了很多年,其实也是很无奈的。

solid 作为一个全新推出的库,他充分结合了现有同类产品的优势,从头开始按照目前最先进的思想来设计,因此它的源码很少,却可以达到目前最优的性能。虽然不可避免的以后技术还会更迭,今天 solid 中使用的最优方案可能明天会被新的东西取代,可能某一天 solid 也会面临着和 react 一样想进行底层升级又难以很好地兼容旧版本的无奈,可能那时候又会有一个新的库产生来取代 solid,这些都是不可避免的,但是至少从现在来看,solid 算是一个兼备了很多长处的一个优秀产品。

那么我是否需要使用 solid 代替 react 呢?大多数时候并不需要也不应该如此。选择什么样的开发库需要考虑很多因素,react 已经形成了一套完整的思维模型和体系,这种优势是长期发展换来的,是其他任何新产品无法具备的,这也就是为什么 react 宁愿把新功能作为实验特性持续多年也不愿意推出大的 break change,相比较于更强大的性能 feature,这些长久的积累要重要得多。

当然如果你感兴趣,如果你愿意尝试并可以接收任何后果,或者如果你有相关的需求作为契机,你可以尝试使用 solid 开发应用,使用体验上还是很好的。

当然即使你不需要使用 solid,阅读 solid 的源码还是很有意义的,相比较于 vue 和 react,solid 的源码很有学习和借鉴意义,没有过多的兼容和无奈的写法,都是很明确的实现,可以作为相关学习的优秀范本。