与其他同类框架相比,有什么优势或亮点?
Opened this issue · 4 comments
看了文档感觉作者还是蛮用心的。
所以想了解下,与其他同类框架相比,有什么优势或亮点?
比如wepy、mpvue之类。
-
与目前同类的主流框架相比,首先最明显的不同点是:Tina 的 API 并不偏向 React 或 Vue 的风格,而是在小程序自身框架 (MINA) 的基础上做扩充。这样设计的目的是希望减少开发者在上手时的学习成本 —— 因为小程序自身框架、语法、运行环境的限制非常多,在其基础上难以还原 React / Vue 的所有 API (尤其是 Vue);对于开发者而言,即便使用了 React-like / Vue-like 的框架,如果在实际开发过程中遇到了这些限制,还是不得不从上层框架和小程序官方框架的资料中寻查原因,这样一来开发者的学习成本非但没有减少,反而还增加了;另一方面,实现 MINA-like Framework 相比 React-like / Vue-like 可以减少很多不必要的开发量
,从而也便减少了框架自身出 bugs 的概率(大雾。 -
针对小程序官方框架中的各个缺陷,Tina 以 Unix philosophy 的方式逐一解决 —— do one thing and do it well·。例如:
@tinajs/mina-webpack
负责解决工程的问题,即借助 webpack 支持加载 npm 包、使用自定义预编译器、代码压缩等;@tinajs/tina
负责弥补 MINA 主框架的缺陷,即优化setData
、支持组件间复用代码 (mixin);@tinajs/tina-redux
、@tinajs/tinax
负责解决跨组件通讯的问题,即借助@tinajs/tina
扩展出 Redux / Vuex-like 的全局状态管理器;wxio
负责优化小程序 API,即把{ success, error, complete }
的 ajax 风格 API 转换为更现代的 Promise;@tinajs/template-mina
、@tinajs/template-tina
负责帮助开发者快速搭建小程序项目。
基于这样的设计哲学,开发者可以非常自由地组合使用各个部件 —— 如果你不喜欢全家桶,甚至不使用
@tinajs/tina
,你也能够轻松地使用wxio
或者@tinajs/mina-webpack
。 -
从以上两点也可以看出,相比同类框架,Tina 更多地是在做一些本应由小程序官方框架自身来完成的事情 —— 这样的设计偏好可以使 Tina 更不容易受小程序官方框架的更新所影响。例如当小程序迭代出新的官方组件 (如
<i-like-it />
) 时,使用 Tina 框架的开发者无须做任何改动便可以直接支持。其次如果小程序官方框架可以向着好的设计方向发展 —— 也就是当官方着手处理目前各项最主要的缺陷时,Unix philosophy 的 Tina 框架便是官方很好的一个参考例子。
感觉挺好的,对于我来说只需要单文件这个特性,其他真的没什么所谓。其他特性反而增加了bug出现的概率和降低性能。
其实,我的诉求只是单文件,语法不用偏向谁。大佬加油
非常支持,准备拿来写线上项目了😄