Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

与其他同类框架相比,有什么优势或亮点? #3

Open
michaelzx opened this issue Jul 7, 2018 · 4 comments
Open

与其他同类框架相比,有什么优势或亮点? #3

michaelzx opened this issue Jul 7, 2018 · 4 comments

Comments

@michaelzx
Copy link

michaelzx commented Jul 7, 2018

看了文档感觉作者还是蛮用心的。
所以想了解下,与其他同类框架相比,有什么优势或亮点?
比如wepy、mpvue之类。

@imyelo
Copy link
Member

imyelo commented Jul 7, 2018

  1. 与目前同类的主流框架相比,首先最明显的不同点是:Tina 的 API 并不偏向 React 或 Vue 的风格,而是在小程序自身框架 (MINA) 的基础上做扩充。这样设计的目的是希望减少开发者在上手时的学习成本 —— 因为小程序自身框架、语法、运行环境的限制非常多,在其基础上难以还原 React / Vue 的所有 API (尤其是 Vue);对于开发者而言,即便使用了 React-like / Vue-like 的框架,如果在实际开发过程中遇到了这些限制,还是不得不从上层框架和小程序官方框架的资料中寻查原因,这样一来开发者的学习成本非但没有减少,反而还增加了;另一方面,实现 MINA-like Framework 相比 React-like / Vue-like 可以减少很多不必要的开发量,从而也便减少了框架自身出 bugs 的概率(大雾

  2. 针对小程序官方框架中的各个缺陷,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

  3. 从以上两点也可以看出,相比同类框架,Tina 更多地是在做一些本应由小程序官方框架自身来完成的事情 —— 这样的设计偏好可以使 Tina 更不容易受小程序官方框架的更新所影响。例如当小程序迭代出新的官方组件 (如 <i-like-it />) 时,使用 Tina 框架的开发者无须做任何改动便可以直接支持。其次如果小程序官方框架可以向着好的设计方向发展 —— 也就是当官方着手处理目前各项最主要的缺陷时,Unix philosophy 的 Tina 框架便是官方很好的一个参考例子。

@strange-fish
Copy link
Contributor

感觉挺好的,对于我来说只需要单文件这个特性,其他真的没什么所谓。其他特性反而增加了bug出现的概率和降低性能。

@Hezhong123
Copy link

其实,我的诉求只是单文件,语法不用偏向谁。大佬加油

@GzhiYi
Copy link

GzhiYi commented Nov 26, 2019

非常支持,准备拿来写线上项目了😄

@imyelo imyelo pinned this issue Apr 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants