Appearance
开篇-前端多端统一开发背景与趋势介绍
前端多端统一开发背景与趋势介绍
背景
「大前端」不仅会成为移动开发与 Web 前端的发展趋势,也会是未来的显示设备终端的开发技术趋势?
越来越多的业内人士对此表示肯定,因为终端碎片化和 Serverless 让这一切看起来更加可信。终端碎片化顾名思义就是指终端越来越多样,比如 Apple Watch 手表、智能 TV、VR 眼镜等等。这些终端就和智能手机一样,支持第三方应用的嵌入。Serverless 字面意思是无服务架构,实际就是指用新的架构去代替传统服务器。
当然,聊背景聊趋势,脱离了时间维度都是耍流氓。在 2018 年这个时间节点,前端界基本被 React、Angular、Vue 这三大框架统治,我们很少会在新项目中使用 jQuery 和 SeaJS 。而且来自 Facebook 公司的 React Native 项目可以让前端工程师在不了解原生开发的情况下,初步涉猎 Android、iOS 端的客户端开发。
在这样的大背景下,前端工程师不仅需要掌握 PC 端和 H5 相关的开发能力,还需要对 Android、iOS 等各种终端的开发具有一定的了解。
时间回到 2017 年,微信小程序横空出世。小程序为业务提供了一种新的展现形态。在拥有近似 Native APP 体验的同时,依托于微信便利的入口,小程序能够让用户很方便地访问我们的业务,大大降低了业务产品的传播成本。很显然,小程序带来的业务上的好处是不言而喻的。但对于前端开发者来说,这意味着开发者需要掌握的工具/框架又多了一套。
总体来看,我们认为前端框架、技术标准在不停演变,新的业务形态、用户终端也在不断涌现,这对于一个行业的发展来说或许是件好事;但对于开发者和团队来说,这意味着居高不下的学习和试错成本。伴随着支付宝小程序、快应用、百度智能小程序等终端的陆续入局,由于成本和效率的问题,业务产品也不太可能为每个终端都单独的进行开发工作。
随着团队不断深入小程序的开发,我们发现小程序的开发模式并没有融合目前主流的工程化开发思想,例如不完整的 ES.Next 语法,较为封闭的开发工具等等,这使得很多业界开发模式与工具不能在小程序开发中得到相应体现,像是从前端工业时代回退到了刀耕火种的年代。
深耕小程序开发一段时间后,我们认为,如果构建一个抹平小程序端开发差异的解决方案,让开发者可以使用熟悉的技术栈完成多端的开发,这对于开发者和团队将会是一件好事。怀揣着同样的愿望,业界已经出现了来自美团点评的基于 Vue 语法的 mpvue 框架,还有腾讯团队的 WePY。
由于我们团队的开发更偏向 React 技术栈,所以我们考虑基于 React 语法打造一套解决方案。团队中的科幻迷为这个解决方案起了个代号,叫 Alien(异形)。
在实际项目中,我们还面临着同时开发多端的需求。也就是说,同一个项目需要分别在小程序端,H5 端,甚至 React Native 端有相同的表现。重写一份意味着加倍的工作量,所以我们考虑让这套解决方案支持生成可用于多个终端的代码。在 Web 端的代码中使用团队自研的类 React 组件框架 Nerv 作为基础框架;CLI 工具的设计上,我们则借鉴了团队打包工具 Athena 的代码;仓库包管理方面,则选择了 Lerna。站在这些优秀项目的肩膀上,我们快速完成了多端转换功能的开发。最后,我们团队为这个方案起了个更响亮更好记的名字 —— Taro
(泰罗奥特曼,宇宙警备队总教官)。
本小册的简介
学习一门技术的最好方法,就是在实践中使用它。
Taro 也是如此。所以这本小册主要介绍从 0 到 1 构建一个电商平台的实战过程。这更多的是将新技术付诸实践的一个试验品。它距离真正投入电商平台,难免会有些不严谨或是不优雅的地方。但通过这样一个从前端到后台的完整实践,我们可以经历 React 语法的学习过程,了解 Taro 的编码规范,品味在 React 中状态管理的艺术,领略多端适配的神秘魔法,还可以了解 Serverless 架构的一些应用。
下面,我们将从 React 语法开始进行介绍,如果你对 React、JSX 等概念不熟悉,可以细心品味;如果你已经是 React 的老手,也可以一目十行复习一下。希望这本小册对各位小白或是老手都能有所启发。
假如觉得有点复杂了,可以先从实战篇入手。当有了 Taro 的开发经验后再回来重读进阶篇,相信会有更大的收获。
本小册的内容将按入门篇、基础篇、进阶篇、实战篇、总结篇进行编排。本章作为入门篇,主要介绍了前端多端统一开发背景与趋势,以及说明了 Taro 的由来。
基础篇为第 2-7 章,主要是介绍了开发 Taro 开发电商平台所需要的 React 知识和小程序开发入门知识,Taro 的安装使用和开发说明及注意事项,最后我们实现一个简单的 Todo 项目,并通过它的升级版了解如何在 Taro 中整合 Redux。
进阶篇为第 8-15 章,本篇主要介绍 Taro 的技术原理与细节,首先是多端统一开发设计思想及架构,而后介绍 CLI 原理及不同端的运行机制、文件转换处理、组件库及 API 的设计与适配,最后介绍如何实现 JSX 转换微信小程序模板。
实战篇为第 16-26 章,这一部分我们将以一个电商平台为例,挑选出黄金购物流程来和大家一一讲解,其中会涉及到授权、商品列表页、商品详情页、购物车、结算页、以及小程序云的介绍与使用,最后介绍多端的打包与发布。
总结篇为第 27 章,总结 Taro,本电商平台项目以及本小册重要知识点。