随着响应式与混合开发的技术体系的兴起与逐步完善,终端碎片化时代如期而至。 前端
这里的‘碎片化’,意指形形色色的媒体终端碎片化了用户体验方式和时间,一款产品在各终端的表现层基本一致,略有差别。vue
因而,基于产品多终端的便捷化开发,多端一体化开发体系兴起了。在讲多端一体化开发体系以前,咱们先回顾一下它的基础:混合开发。node
混合开发react
混合开发发展到如今,实质上而言,大体可分为三大类;ios
一 H5嵌入式混合开发(webApp ,native-h5-app ):web
表明技术有:面试
1 webview : webview控件性能越发强大,可控的h5内容体积以及逐渐接近native的性能,让它逐渐成为新时代主流的webapp开发方式; 小程序
2 hyiframe : 用iframe开一个窗口,请求服务端的h5页面,是早年的webapp的主流开发方式。windows
3 highbridge : 有native提供底层调用api,以桥接的方式,让h5可间接调用底层,直到如今,它仍是主流的webapp开发方式;微信小程序
4 pwa : pwa 其实不算一种技术,它是一种概念——追求无限接近native性能的web pro。这里把它放在这里,主要考虑到桌面h5应用。
二 native混合开发(写的js,build出的是安卓、ios原生):
表明技术有:
1 RN : react-native是早期Facebook团队推出的混合开发框架,到如今的版本,对安卓和ios都有很好的支持;
2 Weex : vue语法的native混合开发体系。虽然背后没有特别强大的团队,但开源大佬多啊;
native意指原生,这里的原生指的是 安卓原生和ios原生。前阵子很火的一道面试题是 native混合开发的原理,讲起来很简单,实际上真正要更深刻的理解,多少要学些原生的东西。
三 平台脚本类的小程序 :
表明技术有:
1 微信小程序 : 这个有多火就不用再说了==!
2 支付宝小程序: 据说搞得还不错,但支付宝用户多依赖支付宝的支付功能,大多都是把它定位为一个便捷支付类的产品,而非一个娱乐/社交产品。它没微信小程序火,不是由于技术上的不足,而是产品的定位。
咱们知道js也是门脚本语言,所谓脚本语法,就是只能运行在特定的环境下。 例如js只能依赖具有js解释器的环境(以浏览器引擎,node为主的环境都具有js解释器的功能),vbs只能依赖windows环境(windows的脚本语言)。
一样的,微信、支付宝、钉钉等产品自己也是一种环境,微信最早开始提供了它的脚本语言,在语言设计上,与js的语法几乎一致,所以——咱们用的是js语法,实际上写的是独属于这个环境的脚本。
以上,是主流的三大类混合开发方式;
多端一体化开发体系
多端一体化开发体系,就是以h5与混合开发为根本,利用它们共同的特性:js语法,去构建的一次开发,多端产出的开发体系。
主流技术有:
1 Rax: 表层用react语法开发,构建依赖weex(没写错,不要奇怪这一点)实现native(安卓、ios)端,同时产出h5端;
也就是 rax => weex+h5 => andriod+ios+h5;
2 Taro.js : taro.js也是一个开源的多端一体化开发体系,版本稳定以来一直很受欢迎。
Taro.js用的也是react语法,但开发一套代码后,经过taro提供的编译工具,可build出多套终端的适配代码:包括微信/百度/支付宝/字节跳动小程序、H五、React-Native ,适用性很广,极大地解放了前端开发的生产力。
18年起,开源的多端开发框架逐渐增多,出现了很多好产品。这必然是前端应对大前端潮流下终端碎片化的最好方式,所以,掌握和熟练一门体系是做为一个跟随时代潮流的前端开发人员所必备的技能之一。
大前端,讲在最后
所谓大前端的概念,一开始是node兴起后的衍生概念。咱们知道,node做为服务端js的运行环境,它一开始的主要是作ssr(服务端渲染)这样的一个表现层;但随着它的逐步完善和突出的特色,新兴架构方式中常有用node做为前端的一个信息数据的转发和控制层。这一点其实与多终端相契合——由于多终端因此更须要node去作控制层或中间层,反过来node不只是多终端的根本开发依赖,更是客户端与服务端亲密结合的基础。
所以,现时代讲大前端应当是必备这样的两个条件: 1 面向于多终端的技术栈; 2 以node为核心的服务端技术盏 ;
全文手打,2019年1月9日,散场丶丶。