这两天在看微信小程序团队搞的 Kbone 同构框架,它通过设计一个递归引用自己的自定义组件,直接解决了小程序端的静态页面模板难以表达动态的页面结构的问题。
相较于类似 Taro、WePY、mpvue 把 React、Vue 的模式静态编译成微信的 wxml 模板和逻辑层JS的姿势,Kbone 直接模拟了 DOM 模型,更灵活地适配了 Web 的结构。
(图片来自 AlloyTeam 的文章)
感慨一下,递归真是个奇妙的东西~
参考:
我想唱个反调,这是模板插槽的力量,跟递归没啥关系。。就相当于插座串联,叫递归实在不能苟同
我猜微信小程序只要还依托于 Webview ,其实也是在底层做了一次 custom dom binding 的,现在 kbone 又造了一层,感觉性能真好不到哪里去。。也就是小程序对开发者有严格要求,比如大小不能超过限制等等,不然复杂点的页面几千个节点分分钟炸了
hsxfjames 从结果的角度来看的确是一种递归的模式,通过不断引用自身形成一个树形结构,遇到终止条件才停下来,想说的是这种思维模式的力量。
性能方面,估计和手动在wxml里面写上几千个 view 组件节点差不多。小程序的性能本身就不OK,想起来我上一台手机在卸载了微信和支付宝之后,如丝般顺滑。我自己目前把小程序这一层的性能消耗归结于对抗滥用和黑产付出的成本。也许小程序这种形态在未来什么时候是会消失的吧~
Kbone 用在营销活动页方面看起来还行,这里有个上线了的例子: 【腾讯课堂】基于Kbone使用React同构小程序开发实践总结
不明觉厉,由于还没接触到前端(?)工具就问一下: kbone根据官方文档是“多端统一开发工具”,这个工具是什么?是一种类似编程语言的表达系统,还是GUI软件,还是?
NTL01 不是工具,一个框架,可以理解为不同平台的兼容层
发现 Notion 也有这样的“递归”思想与树形结构的冥冥关联~
写了篇博文记录下了这个想法: Notion 与印象笔记的结合 - ZGQ's Blog
Linux = Linux is not Unix GNU = GNU is not Unix
© 2018-2023 0xFFFF