讨论一下Taro的架构,小程序端和nerv为什么不用同一套core?



  • 都是js,如果抽象为统一的core,维护起来不是轻松点吗。



  • 讲道理 说不定官方遇到了什么难处🎃



  • @onelong讨论一下Taro的架构,小程序端和nerv为什么不用同一套core? 中说:

    都是js,如果抽象为统一的core,维护起来不是轻松点吗。

    当时 Taro 立项的时候我们觉得如果要跑两套虚拟 DOM 和 diff 对性能不好,所以选了一个轻运行时重编译时的方案。

    现在看来 Taro 要走得更远需要一个新方案,新方案会比现有方案更为关注以下几个方面:

    1. 开发效率和开发体验,而不是运行效率:这个事是 trade-off,就目前看来以后的硬件会越来越快,JavaScript 引擎也会越来越快。作为程序员,我们都喜欢高性能的代码,但人力资源比硬件资源贵,这是不争的事实也是以后发展的趋势;
    2. 接入整个 Web 前端社区和资源,而不是小程序社区和资源:小程序社区的资源其实少倒不是关键,关键是质量跟不上,这个不必多说,找找代码看看就一清二楚。
    3. 核心代码和架构更容易被第三方开发者/团队理解和贡献,而不是核心相关的 bug 只能等待 Taro 官方修复:现在 Taro 的 issue 每周都有 100 来个,大部分是 Taro 官方解决修复的,社区修复普遍是 API 和组件库这类不耦合或容易理解的模块。如果新架构的核心构成就像组件库和 API 一样是大家熟悉的东西,那 Taro 团队的压力会小很多,社区也会越来越强大。

    还有最后一个方面最重要,但卖个关子先不说,万一做不出来或者做出来没达到预期,也不至于被啪啪啪打脸。:)

    但新方案没那么快降临到现有的架构上,目前 Taro 对 React 语法/JSX 的处理架构会在新方案在其它的地方迭代稳定之后,才考虑是否迁移。



  • @che 多谢款待



  • issues 里有人发起了个类似的讨论 对于 taro、nerv 的看法


登录后回复