当前位置: 首页 > Web前端 > vue.js

Taro3正式发布:一个开放的跨终端跨框架解决方案

时间:2023-03-31 15:36:02 vue.js

作者:凹凸人-yuche从第一版Taro发布到现在,Taro经过开源社区更多的测试超过两年。今天我们很高兴在聚会的生日之际发布太郎3(TaroNext)正式版,希望太郎在接下来的两年里能像共产主义战士一样经受住更多的考验。以下是Taro3的一些新特性:跨框架:React、Nerv、Vue2、Vue3、jQuery在老版本的Taro中,我们以微信小程序的开发规范为基准,使用React/JSX进行开发.在太郎3中,我们将这种思想量化为一种编程模型:将微信小程序生命周期设置为一个接口,虽然不同框架实例的生命周期不同,但我们可以根据框架生命周期新建一个类。implements小程序生命周期的接口。相应的,小程序的组件/API/路由规范可以使用相同的思想和模型,让不同框架的代码运行在不同的端:在Taro3中,我们内置了四个React、Nerv、Vue2、Vue3在框架的支持下,开发者可以通过taroinit命令创建相应的模板,编写与框架本身的生命周期和调用方式一致的代码(地道代码),没有语法限制。除了这四类框架,Taro3还提供了类jQueryAPI支持,作为现代开发框架的补充和实现跨框架组件的解决方案。跨端:H5、微信、支付宝、百度、字节跳动……与旧版Taro一样,Taro3支持编译到微信、京东、支付宝、百度、字节跳动、QQ等主流小程序平台。和小程序一样,Taro3的H5端相比上一版Taro是完全重写:基础组件全部使用WebComponents搭建,路由系统与前端框架完全解耦,所以也实现了Taro在跨帧的H5侧。无论开发者使用React、Vue还是Nerv,都可以同时运行在各种小程序和H5上。开放的插件系统Taro3在编译时引入了基于Tapable的插件系统。开发者可以通过编写插件的方式为Taro扩展更多的功能,或者为自己的业务定制个性化功能。在运行时,我们受到ReactReconciler的启发,实现了一套API,用于在Taro运行时修改运行时逻辑。也就是说,开发者无需修改甚至不理解Taro的源码和实现,就可以通过Taro扩展更多的终端和框架。在下一个Minor版本(v3.1.0)中,Taro将完成编译时/运行时和终端/框架的解耦。届时,开发者只需要编写插件即可扩展新的终端或框架。未来,Taro将通过这种方式添加新的终端或框架。开源治理和项目治理为了更高效地与开发者沟通,Taro受到Vue.js和AntDesign的启发,推出了IssueHelper工具。为了让Taro在重大特性更新和变更上稳步推进,我们借鉴了Rust和React,引入了RFC流程机制。为了让版本迭代更加透明和规范,Taro在未来的版本发布中也将遵守Milestone机制。文档是开发人员最好的朋友。在Taro3中,我们还对文档进行了修改和重组,并推出了一个新的[progressivedocumentation]()。循序渐进的文档按照开发项目的顺序介绍了Taro的基本概念和优化技巧,适合喜欢边做边学的或者对小程序开发没有任何了解的开发者。代码质量和稳定性对于开源项目来说非常重要。Taro也在严格执行CodeReview机制,所有代码都必须无一例外地进行审查。为了保证我们可以更大胆的迭代新功能,我们在Taro3的整个开发过程中总共添加了30000行测试代码。将微信小程序转为React/Vue早在Taro1.2发布时,我们就提供了功能将微信小程序转为Taro,转换后的微信小程序应用将成为多端应用。现在这个特性也完全兼容TaroNext的新架构,转换后的代码同时提供了React和Vue两种选择。和之前一样,只需要在微信小程序项目根目录下执行命令taroconvert:$taroconvert选择你要转换的框架:渲染HTML字符串小程序渲染HTML字符串通常使用第一个wxparse三方库,但wxparse的API复杂,扩展性弱,内部实现不准确。最重要的是,现在已经停止维护了。与wxparse相比,Taro3的HTML字符串渲染提供了以下特点:API与Web一致,可以直接通过React的dangerouslySetInnerHTML或者Vue的v-html调用。可以直接通过CSS控制标签样式。将事件绑定到呈现的HTML标记。HTML解析和渲染都提供了Hook函数,满足个性化的渲染需求。您可以访问文档渲染HTML了解更多信息。CSS-In-JSReact社区中有一个著名的CSS-in-JS解决方案:styled-components。遗憾的是,styled-components使用