随着响应式与混合开发的技术体系的兴起与逐步完善, 终端碎片化时代如期而至.
这里的'碎片化', 意指形形色色的媒体终端碎片化了用户体验方式和时间, 一款产品在各终端的表现层基本一致, 略有差异.
于是, 基于产品多终端的便捷化开发, 多端一体化开发体系兴起了. 在讲多端一体化开发体系之前, 我们先回顾一下它的基础: 混合开发.
混合开发
混合开发发展到现在, 实质上而言, 大致可分为三大类;
一 H5 嵌入式混合开发 (webApp ,native-h5-App ):
代表技术有:
1 webview : webview 控件性能愈加强大, 可控的 h5 内容体积以及逐渐接近 native 的性能, 让它逐渐成为新时代主流的 webapp 开发方式;
2 hyiframe : 用 iframe 开一个窗口, 请求服务端的 h5 页面, 是早年的 webapp 的主流开发方式.
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 出多套终端的适配代码: 包括微信 / 百度 / 支付宝 / 字节跳动小程序, H5,React-Native , 适用性很广, 极大地解放了前端开发的生产力.
18 年起, 开源的多端开发框架逐渐增多, 出现了不少好产品. 这必然是前端应对大前端潮流下终端碎片化的最好方式, 因此, 掌握和熟练一门体系是作为一个跟随时代潮流的前端开发人员所必备的技能之一.
大前端, 讲在最后
所谓大前端的概念, 一开始是 node 兴起后的衍生概念. 我们知道, node 作为服务端 JS 的运行环境, 它一开始的主要是做 ssr(服务端渲染) 这样的一个表现层; 但随着它的逐步完善和突出的特点, 新兴架构方式中常有用 node 作为前端的一个信息数据的转发和控制层. 这一点其实与多终端相契合 -- 因为多终端所以更需要 node 去做控制层或中间层, 反过来 node 不仅是多终端的根本开发依赖, 更是客户端与服务端亲密结合的基础.
因此, 现时代讲大前端应当是必备这样的两个条件: 1 面向于多终端的技术栈; 2 以 node 为核心的服务端技术盏 ;
全文手打, 2019 年 1 月 9 日, 散场丶丶.
来源: https://www.cnblogs.com/sanchang/p/10243703.html