写点什么

Taro 1.1 全面支持微信 / 百度 / 支付宝小程序了!

  • 2018-11-08
  • 本文字数:2258 字

    阅读完需:约 7 分钟

Taro 1.1 全面支持微信/百度/支付宝小程序了!

9 月份, Taro 正式发布了 1.0 版本

作为一个多端统一开发框架,Taro 1.0 版本为广大开发者带来了许多激动人心的特性,帮助开发者们更方便快捷地开发多端应用。

前进的脚步没有停下,历时一个多月,Taro 1.1 版本正式来袭!

从 1.0 到 1.1,期间产生了 500 余次 Commit,发布了 23 个版本,Taro 一直保持高速的迭代频率,只为不断打磨,为它注入更多优秀的特性,让更多开发者受益。

Taro 1.1 正式来袭

更丰富的平台转换支持

自从微信小程序诞生以来,小程序的优势大家有目共睹,各大互联网厂商开始摩拳擦掌,纷纷布局小程序领域,其中势头最劲的当属百度智能小程序和支付宝小程序。对于前端而言,既是机遇,因为平台愈多,带来的机会愈多;也是挑战,因为不同的平台总会各有差异,为每个平台维护一份代码,成本显然太高。

为了降低多端应用的开发成本,在已全面支持微信小程序的基础上,Taro 在 1.1 版本中加入了对百度智能小程序和支付宝小程序的支持。

支持百度智能小程序

升级到 1.1 版本后,即可获得将现有项目转换成百度智能小程序的能力。

使用如下命令进行百度智能小程序端编译预览及打包:

复制代码
# npm script
$ npm run dev:swan
$ npm run build:swan
# 仅限全局安装
$ taro build --type swan --watch
$ taro build --type swan
# npx 用户也可以使用
$ npx taro build --type swan --watch
$ npx taro build --type swan

选择百度智能小程序模式,需要你下载并打开百度开发者工具,然后在项目编译完后选择项目根目录下 dist 目录进行预览。

目前已有使用 Taro 开发的首款百度智能小程序 “京东好物街” 正式上线,可以使用百度 APP,扫描以下二维码进行体验:

支持支付宝小程序

支付宝小程序的转换方式与百度智能小程序一致。

你可以使用如下命令进行支付宝智能小程序端编译预览及打包:

复制代码
# npm script
$ npm run dev:alipay
$ npm run build:alipay
# 仅限全局安装
$ taro build --type alipay --watch
$ taro build --type alipay
# npx 用户也可以使用
$ npx taro build --type alipay --watch
$ npx taro build --type alipay

选择支付宝小程序模式,需要你下载并打开支付宝小程序开发者工具,然后在项目编译完后选择项目根目录下 dist 目录进行预览。

新增平台标识

在加入 百度智能小程序 和 支付宝小程序 支持后,目前 Taro 已经提供了对 5 个平台的支持,分别是 微信/ 百度/ 支付宝/React Native/H5,为了方便开发者书写平台差异化代码,Taro 为每个平台提供了平台标识,并可以通过 process.env.TARO_ENV 来获得,其取值分别如下:

  • weapp,代表微信小程序

  • h5,代表 H5

  • rn,代表 React Native

  • swan,代表百度智能小程序,1.1 版本新增

  • alipay,代表支付宝小程序,1.1 版本新增

开放多端 UI 库打包能力

在 1.0 版本中,Taro 的 build 命令新增了 --ui 参数,来将按照一定规则组织的代码打包成可以在 Taro 中使用的多端 UI 库。 并且,基于这一功能,Taro 推出了首个可以跨多端使用的多端 UI 库 Taro UI。

为了完善 Taro 生态,扩展 Taro 社区,在 1.1 版本中开放了多端 UI 库的打包能力,并提供了详细的开发指南。

同时 Taro 也提供了官方的多端 UI 库示例,这是一个完整规范的 UI 库开发例子,包含必要的项目改造以及测试套件,基于这个示例,开发者可以快速地开发一个多端 UI 库项目。

还有更多

在 1.0 版本中,Taro 提供了对 微信小程序、H5 以及 React Native 的支持,而 1.1 版本,在原有支持的基础之上,对每一个平台进行不断完善,让其更加丰富完整。

微信小程序

  • F 调用 this.setState 时,JSON Diff 算法 Bug 修复

  • F 修复 this.setState 回调里再调用 this.setState 的 Bug

  • A 新增 componentWillPreload 生命周期,用于数据预加载

  • A 支持在同一作用域对 JSX 赋值

  • F 多层 Map 循环嵌套包含条件判断时问题修复

  • F 中文字符被编译成 unicode 码问题修复

  • F 三元表达式解析问题修复

  • A 提升字符串模板的性能

H5

  • A H5 支持分包配置

  • F 修复 H5 后台页面依然执行生命周期的问题

  • F 修复 PUT 、DELETE 等请求 body 为对象时无法发送 body 的问题

  • A 增加 setTabBarStyle 与 setTabBarItem API

  • A 增加 arrayBufferToBase64 与 base64ToArrayBuffer API

  • A 编译打包支持将公共 npm 包抽离成 lib 库

React Native

  • A 支持 TypeScript

  • F 修复项目初始化后 less 编译报错

  • A 添加 config.window.navigationStyle 配置

  • A 添加 showNavigationBarLoading 与 hideNavigationBarLoading API

  • A 增加 arrayBufferToBase64 与 base64ToArrayBuffer API

  • F 修复样式支持警告

  • A watch 模式时代码按需编译

  • F 修复同一文件夹下多个 JS 文件样式引用错误

  • F app.json 的 expo 配置改为可覆盖

  • A 支持 Taro.pxTransform

  • F iconPath 和 selectedPath 的为同一个路径导致的重复引用的报错

  • A 在 config 中添加 rn 的 expo 配置

  • A 支持 deviceRatio 自定义

更完整的功能迭代记录请参阅:

https://github.com/NervJS/taro/blob/master/CHANGELOG.md

未来规划

Taro 将会继续保持高效迭代,以满足日益增长的多端开发需求。

目前已经确认的开发计划可以参见 Taro 版本开发计划:

https://github.com/NervJS/taro/blob/master/PLANS.md

小程序转 Taro 代码开启内测

值得注意的是,激动人心的小程序转 Taro 代码功能已经开发完成,进入内测阶段,可以通过如下命令安装到 canary 版本,进行体验:

复制代码
$ npm i -g @tarojs/cli@canary

欢迎针对这一功能,提供宝贵意见,意见入口请戳:
https://github.com/NervJS/taro/issues/955

同时,为了帮助 Taro 更好地成长,让 Taro 更好地回馈所有开发者,欢迎您给 Taro 提供优秀想法,或者直接贡献代码: https://github.com/NervJS/taro/pulls

2018-11-08 11:335791

评论 10 条评论

发布
用户头像
haha
2018-11-09 13:13
回复
用户头像
Hello World!
2018-11-09 09:08
回复
用户头像
体验一下新版网站
2018-11-08 17:09
回复
欢迎到来
2018-11-09 00:28
回复
用户头像
用着挺爽的,加油
2018-11-08 14:27
回复
用户头像
这个厉害了。
2018-11-08 14:11
回复
用户头像
牛逼了!
2018-11-08 13:10
回复
用户头像
比mpvue更全能
2018-11-08 11:13
回复
用户头像
最后的超链接多加了个句号
2018-11-08 10:20
回复
用户头像
强大!
2018-11-08 09:11
回复
没有更多了
发现更多内容

SSH 简介:安全远程访问的利器

霍格沃兹测试开发学社

一文读懂Partisia Blockchain 的MOCCA方案:资产托管的最优解

BlockChain先知

使用Python进行网络数据可视化的多种方法与技巧

我再BUG界嘎嘎乱杀

Python 可视化

【三体学者】著名的黑暗森林理论是什么含义?

AppBuilder

Playwright执行 JavaScript 脚本:探索浏览器自动化的新境界

霍格沃兹测试开发学社

天润融通引领AI大模型应用,助力企业客户感知升级

天润融通

人工智能 AI 天润融通

系统运维联盟 5 月会议召开,围绕“进展、规划与合作”展开讨论

OpenAnolis小助手

操作系统 龙蜥社区系统运维联盟

MES生产车间物料如何管理才能降本增效?

万界星空科技

生产管理系统 mes 万界星空科技 物料管理 生产物料

连续五年稳坐中国第一,天润融通助力锐捷网络重塑客户服务新篇章

天润融通

人工智能 AI 天润融通

数智领航 云启未来|华为云618营销季全面启动

YG科技

哈银消费金融端午节金融知识普及,守护消费者权益,助力智慧消费!

极客天地

实现Python日志点击跳转到代码位置的方法

霍格沃兹测试开发学社

奥迪运动通过 trinckle 软件和 UltiMaker 3D 打印机加速设计和生产流程

财见

30天拿下Rust之高级类型

希望睿智

rust 类型

30天拿下Rust之unsafe代码

希望睿智

rust unsafe

线上观看人次2万+!「飞天技术沙龙-CentOS 迁移替换专场」北京站圆满结束

OpenAnolis小助手

操作系统 龙蜥社区 CentOS迁移 Alibaba Cloud Linux Anolis OS

利用机器学习助力发动机舱电磁场强仿真,实现快速预测

Altair RapidMiner

机器学习 数据分析 #人工智能

世界经合组织(OECD)认为德国在人工智能领域处于全球领先地位

财见

大模型产品化,不过是三支舞

脑极体

AI

社区新标准发布!龙蜥社区标准化 SIG MeetUp 圆满结束

OpenAnolis小助手

标准化 龙蜥meetup 龙蜥社区标准化SIG

java抽象类与接口的区别

小曾同学.com

接口 java\ 抽象类

探索Vue.js:从基础到进阶

霍格沃兹测试开发学社

Partisia Blockchain的MOCCA方案,资产托管领域的全新范式

石头财经

30天拿下Rust之图形编程

希望睿智

rust 图形软件

相聚杭州,53 位代表参会!龙蜥社区两大委员会圆满结束

OpenAnolis小助手

操作系统 龙蜥社区

发掘 Chrome 的实用命令:提升你的浏览器使用体验

霍格沃兹测试开发学社

Python 中寻找列表最大值位置的方法

霍格沃兹测试开发学社

Partisia Blockchain的MOCCA方案,如何成为资产托管最优解?

股市老人

Partisia Blockchain的MOCCA方案,资产托管领域的全新范式

股市老人

Taro 1.1 全面支持微信/百度/支付宝小程序了!_移动_凹凸实验室_InfoQ精选文章