首页 > 其他分享 >Taro的架构与使用价值

Taro的架构与使用价值

时间:2023-09-18 23:57:02浏览次数:40  
标签:架构 微信 代码 程序 React Taro 价值

随着移动互联网和智能设备的普及,前端开发人员需要采用多端同构技术来适配不同的终端(小程序、App和Web)。这些终端之间存在着明显的差异,包括浏览器引擎、操作系统、交互方式以及代码语言等方面。这些差异给前端开发人员带来了不少挑战。一方面,不同终端采用不同的浏览器引擎和操作系统,导致页面渲染和交互行为的表现各不相同。另一方面,不同终端所使用的代码语言和开发工具也存在差异,需要开发人员具备不同的技术背景和知识,才能编写多份代码来适配不同的终端。

关于 Taro

Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ / 飞书/ FinClip 小程序 / H5 / RN 等应用。

现如今市面上端的形态多种多样,Web、React Native、微信小程序等各种端大行其道。当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。

在非常强调效率的时代下,Taro 3 可以支持转换到 H5、ReactNative 以及任意小程序平台,就可以大大的避免在多个平台重复的进行开发。

如果再回溯的更深一些,我们可以引用京东官方的说法:

团队人力资源捉襟见肘,与此同时,以上的业务都或多或少存在多端的需求,比如 微信小程序、H5、React Native (京东的主流 APP 基本都内置了 React Native 渲染引擎),而且可以预见的是,以后很有可能需要适配更多的小程序平台,而每个端开发一套代码又不现实,会导致:研发成本上升,代码维护困难。

当时我们团队自研了一款 类 React 框架:Nervjs, 整个团队的技术栈因此全部转向了 React ,而当时市面上又没有一款遵循 React 语法的小程序框架,因此,我们开发了 Taro,希望能够使用 React 语法写小程序的同时,通过「Write once Run anywhere」来实现跨端的。

Taro 的架构

小程序的架构都很清楚了,主要分为逻辑层是视图层两部分,逻辑层主要负责 JS 运行,视图层主要负责页面的渲染,它们之间主要通过 Event 和 Data 进行通信,同时通过 JSBridge 调用原生的 API。

再来看看 Taro 的架构,Taro 当前的架构主要分为:编译时 和 运行时。其中编译时主要是将 Taro 代码通过 Babel 转换成 小程序的代码,如:JS、WXML、WXSS、JSON。运行时主要是进行一些:生命周期、事件、data 等部分的处理和对接。

归纳起来,整个 Taro 架构有三大特点:

  • 重编译时,轻运行时,这从代码行数的对比就可见一斑。
  • 编译后代码与 React 无关,Taro 只是在开发时遵循了 React 的语法。
  • 直接使用 Babel 进行编译,这也导致当前 Taro 在工程化和插件方面的羸弱。

与其他框架的横向对比

在这里也不说哪个框架绝对的好用,由于本篇文章是专门针对 Taro 的介绍,所以我们就以官方的一些能力对比为参照进行分析。

直接先放一张总体能力的对比图:

关于开发的支持

在语法支持方面,mpvue、uni-app、Taro 、WePY 均支持 TypeScript,四者也都能通过 typing 实现编辑器自动补全。除了 API 补全之外,得益于 TypeScript 对于 JSX 的良好支持,Taro 也能对组件进行自动补全。但在工具的支持上 uni-app 还是有较为明显的优势。

多端支持度

只从支持端的数量来看,Taro 和 uni-app 以六端略微领先(移动端、H5、微信小程序、百度小程序、支付宝小程序、抖音小程序),chameleon 少了抖音小程序紧随其后。

但值得一提的是 chameleon 有一套自研多态协议,编写多端代码的体验会好许多,可以说是一个能戳到多端开发痛点的功能。

Taro 的价值

为什么会说到这个呢?因为大部分的开发者只会讲 Taro 用到小程序相关的开发当中,但其实我们还能将 Taro 开发的小程序放到自己的App中,充当或者代替原生/H5的部分,但要实现这一部分需要搭配借助小程序容器进行实现。

这样一来可以除了可以将小程序上架到微信、支付宝等开放平台之外,还能在一次开发的前提下,将 Taro 支持的 FinClip 小程序上架到自己的 App 中。

标签:架构,微信,代码,程序,React,Taro,价值
From: https://www.cnblogs.com/Xxx1m/p/17713520.html

相关文章

  • 关于Taro: 在移动APP方面还有哪些潜力?
    Taro是一个多端统一的开发框架。使用Taro它可以支持React的开发方式,编写一次可以运行多端的代码,就能够生成可以在各种小程序,H5甚至ReactNative等多端应用。Taro的官方介绍Taro是一个开放式跨端跨框架解决方案,支持使用React/Vue/Nerv等框架来开发微信/京东/百......
  • 高级系统架构师学习(六)信息安全和系统可靠性
    一、信息安全基础信息安全5要素机密性:指网络信息不泄露给非授权的用户、实体或程序,能够防止非授权者获取信息。完整性:指网络信息或系统未经授权不能进行更改的特性。可用性:指合法许可的用户能够及时获取网络信息或服务的特性。可控性:指可以控制授权范围内的信息流向及行为方......
  • 深入研究消息队列07 架构升级
    36云原生:业界MQ的计算存储分离存算分离架构存算一体架构如下存算分离架构则是目前实现弹性消息队列集群的主要技术方案存算分离架构的优点是计算层为无状态,因此计算层的扩缩容就很方便。缺点是架构变复杂,代码实现难度也提升很多,日常的运维、研发的学习成本也会相应提高。另外计算......
  • 1.MySQL、基础架构(SQL语句执行流程、更新语句执行流程)
    1.MySQL的索引有哪些索引在什么层面:索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。B+树索引:是大多数MySQL存储引擎的默认索引类型。哈希索引:哈希索引能以O(1)时间进行查找,但是失去了有序性;InnoDB存储引擎有一个特殊的功能叫......
  • Dubbo3应用开发——架构的演变过程
    Dubbo3应用开发——架构的演变过程什么是Dubbo早期Dubbo的定位;基于Java的高性能,轻量级的RPC框架;SOA【Service-OrientedArchitecture⾯向服务的架构】=RPC+服务治理;2018年阿⾥巴巴把这个框架捐献给了Apache基⾦会,正式更名为ApacheDubbo。最新版本为Dubbo3.xApache......
  • JAVA高级架构师
    JAVA高级架构师技术包含:SpringBoot3.0,SpringCloudAlibaba,JDK11~19,Spring6,IOC,AOP,JavaWeb,SpringMVC,Mybatis,Docker,k8s,Devops,Vue3.0,Nginx,Redis7,MongoDB,JDBC,ShardingJDBC,Zookeeper,Dubbo,Activiti7,ES8,RabbitMQ,Redisson,Shiro,Paas,Neo4j,Kafka,Mycat,Tcp,ELK,SpringDa......
  • 高效数据湖构建与数据仓库融合:大规模数据架构最佳实践
    在当今数字时代,数据被认为是新的黄金,无论是企业、政府还是学术界,都需要有效地管理和分析海量数据。在数据处理领域,数据湖(DataLake)和数据仓库(DataWarehouse)是两个重要的概念。本文将深入探讨如何高效地构建数据湖,以及数据湖与数据仓库的融合,为大规模数据架构提供最佳实践。数据......
  • 服务器的架构有哪些
    服务器的架构有哪些1、单体架构软件设计经典的3层模型是表现层,业务逻辑层,数据访问层。典型的单体架构就是将所有的业务场景的表现层,业务逻辑层,数据访问层放在一个工程中最终经过编译,打包,部署在一台服务器上。2、垂直架构垂直架构是将一个大项目,按照业务场景纵向拆分为互不相干......
  • 商用密码体系架构介绍
    在网络安全上,采用https接入网关提供初始化验证和加密通信通道。在数据安全上,用户鉴别采用SM3、SM4等算法加密存储,采用SM3、SM4等算法对数据加密传输。在终端安全上,通过终端证书进行身份验证;在应用安全上,开展移动应用安全加固,通过数字证书、数据加密保证移动应用安全,接入时采......
  • 服务器的架构有哪些
    服务器的架构有哪些1、单体架构软件设计经典的3层模型是表现层,业务逻辑层,数据访问层。典型的单体架构就是将所有的业务场景的表现层,业务逻辑层,数据访问层放在一个工程中最终经过编译,打包,部署在一台服务器上。2、垂直架构垂直架构是将一个大项目,按照业务场景纵向拆分为互不相干......