2017 前端大事件和趋势回顾,2018 何去何从?
点击上方“CSDN”,选择“置顶公众号”
关键时刻,第一时间送达!
2017 年,前端开发继续飞速发展。以下是在过去的一年中非常值得关注的十大事件整理,主要参考了国内外的一些报道和文章,希望能对大家在思考 2018 年的趋势和走向上有所帮助。欢迎指正、评论和补充。
1. React 16 和 MIT 许可证
2017 年,React 继续在前端领域占据主导地位,备受期待的 React 16 也正式发布。该版本包含可实现异步 UI 渲染的 fiber 架构,以及更便捷的错误管理。
不过,React 更引人关注的不是其新特性,而是开源许可证的更改。Facebook 放弃了导致很多企业拒绝使用其开源项目的 BSD+专利许可模式,并采用了对用户友好的 MIT 许可证。同时,Jest、Flow、Immutable.js 和 GraphQL 等项目也更改为了 MIT 许可证。
2. 下一代 Web 应用模型 — PWA
PWA(Progressive Web App)是 Google 于 2016 年提出的概念,2017 年已被迅速采用。PWA 旨在增强 Web 体验,可显著提高加载速度、可离线工作、可被添加至主屏、全屏执行、推送通知消息等等。这些特性将使得 Web 应用渐进式接近原生 App。
3. Yarn 快速普及,NPM 跟上脚步
Facebook 与 Exponent、 Google 和 Tilde 合作开发的 Yarn 在 2016 年 10 月发布以后,迅速蹿红。Yarn 可以看做是对 NPM 缺失的一些关键特性的补充,能够更快速地安装软件包和管理依赖关系,并且可以在跨机器或者无网络的安全环境中保持代码的一致性。据悉,Yarn 下载量目前已超过 10 亿次(每月下载量达到 125 万次)。
Yarn 的成功,使得 NPM 在 5.0 版本中也加入了上述的这些特性。
4. WebAssembly 受主流浏览器支持
WebAssembly (wasm)在今年受到了所有主流浏览器的支持,包括 Chrome、Firefox、Safari 和 Edge 。wasm 源于 Mozilla 发起的 Asm.js 项目,用于补充 JavaScript,其本地解码速度比 JS 解析快得多,让高性能的 Web 应用在浏览器上运行成为可能,比如视频游戏、计算机辅助设计、视频和图像编辑、科学可视化等等。
而且由于 wasm 字节码(Bytecode)较一般程序代码小许多倍,意谓着这项标准可节省移动设备的使用带宽,有助于改善网页加载速度,且字节码更适合浏览器读取。
wasm 还提供了一个 JavaScript API,为前端开发人员提供了一个更容易的切入点。
5. Angular 发布了 v4,以及……v5
由于采用语义化版本控制,Angular 在今年跨越了两个大版本:于 3 月 23 日 发布的 Angular 4 以及于 11 月 1 日 发布的 Angular 5。Angular 4 优化了视图引擎、减少代码体积;Angular 5 中包含了一些用户期待已久的改进,像是编译器的改进,能更快的构建/重建;新的 @angular/service-worker 包能够更好的构建渐进式 Web 应用程序。
6. Vue.js 继续流行
既然说到了 React ,说到了 Angular ,自然不能落下 Vue 。2017 年,Vue 依然越来越受欢迎,该框架提供基于组件的架构,是 React 在因许可证问题被抵制时的主要替代方案之一。它已经被包括 GitLab 在内的许多大型公司采用,在 Stack Overflow 上的关注度居高不下。
7. CSS-in-JS 在争议中沉淀
React 的出现,打破了以前“关注点分离”的网页开发原则,因其采用组件结构,组件强制要求把 HTML、CSS、JavaScript 写在一起。随着 React 的走红和组件模式深入人心,这种"关注点混合"的新写法逐渐成为主流。表面上,React 的写法是 HTML、CSS、JavaScript 混合在一起。实际上并不是,其实是用 JavaScript 在写 HTML 和 CSS,React 是在 JavaScript 里面实现了对 HTML 和 CSS 的封装。
由于 CSS 的封装非常弱,导致了一系列的第三方库,用来加强 React 的 CSS 操作,它们统称为 CSS in JS,意思就是使用 JS 语言写 CSS。
CSS in JS 的出现带来了很多争议,有不少人认为是在重复造轮子,或者说是没有找到其优势。CSS-IN-JS 是不是未来的方向我们暂且不议,但其在 2017 年已得到明显的采用。
8. 静态网站卷土重来
2017,静态网站卷土重来。Gatsby 等框架使你能够使用 React 和其他现代工具构建静态网站。不是每个网站都需要或应该是一个复杂的现代 Web 应用,静态网站生成器能够提供的服务器端渲染和无与伦比的速度,正式其优势所在。
静态网站生成器还引发了另一个被称为 JAMStack 的趋势:“JavaScript,APIs,Markup”。JAMStack 使用相同的静态预构建 HTML 文件以及可重复使用的 API 和 JavaScript 来处理请求/响应周期内的任何动态编程,旨在提供更好的性能,更高的安全性,更低的扩展成本和更优的开发人员体验。
9. GraphQL 继续挑战 REST
虽然很多人认为 GraphQL 在 2017 年依然没有火起来,但不可否认的是 GraphQL 已逐渐占据了一席之地。不再管理多个端点并获取不必要的数据,GraphQL 允许客户端声明式地定义所需的数据,并从单个端点检索所有数据。这也正式它在刚出现时被认为是革命性的 API 工具的原因,因为它可以让客户端在请求中指定希望得到的数据,而不像传统的 REST 那样只能呆板地在服务端进行预定义。
10. TypeScript 和 Flow 受追捧
2017 年,TypeScript 受到了很多 JavaScript 开发者的追捧。TypeScript 由微软创建,也是新版 Angular 采用的语言,其强类型正式优势所在。 而 Flow 则提供了一种更加灵活的方式来引入类型,而不需要进行重构。
2017 前端大事件和趋势回顾,2018 何去何从?相关推荐
- 前端每周清单第 45 期: Safari 支持 Service Worker, Parcel 完整教程, 2017 前端大事件...
前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点:分为新闻热点.开发教程.工程实践.深度阅读.开源项目.巅峰人生等栏目.欢迎关注[前端之巅]微信公众号(ID: fron ...
- 2017 科技大事件回顾:智能音箱大战、数据泄露于内贼
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! "技术会有一个前进的方向,我们把它称作'必然',也就是说,这个趋势像重力一样,一定 ...
- 谁说 Java 要过时?2017 年 Java 大事件回顾!
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 在过去的一年中,Java 历经了许多变化.在今年年初,Java EE 处于一个不确定的状态, ...
- 回顾2018——区块链行业十大关键词
文章转自: https://tech.sina.com.cn/it/2019-01-03/doc-ihqfskcn3630778.shtml 2018年已经过去,对于区块链行业来说,这是加密货币暴跌的 ...
- 谁说 Java 要过时?2017 年 Java 大事件一览及未来前瞻
在过去的一年中,Java 历经了许多变化.在今年年初,Java EE 处于一个不确定的状态,Java 9 版本也推迟了它的发布日期.在 2016 年的 JavaOne 上,甲骨文宣布了解决平台的计划和 ...
- github issue 搜索_回顾 2020 年 GitHub 的大事件,你知道多少?
作者:HelloGitHub-小鱼干 这里是 HelloGitHub 出品的年度盘点系列,本期我们将盘点 GitHub 在 2020 发生的大事件,回顾一下今年 GitHub 给我们带来了那些惊喜.故 ...
- App Store 2018年年度大事件
1 Apple 年度大事件 1 2018.1.9 首次调整:2018年APP关键词第一次出现大批量变动 2 2018.1.25 IOS11.3 测试版:苹果公司发布iOS11.3测试版 3 2018. ...
- 2017 年十大网页设计趋势
2019独角兽企业重金招聘Python工程师标准>>> 自身.互动.相关这三个关键词,是用户期望通过他们的 UX 设计来满足的体验.而这也意味着网页设计师将要面临更加严峻的网站开发挑 ...
- 回顾2006年:网络通信十大事件
回顾2006年:网络通信十大事件 2006年对于网络通信的技术发展来说,是稳步前进的一年:对于网络通信的市场格局来说,是充满变化的一年.一方面,我们看到WiMAX.HSPA等移动宽带技术稳步发展,融合 ...
最新文章
- jvm四:常量的本质含义以及助记符基本认识
- 链路层的网卡聚合-基于Linux bonding
- spring源码分析,聊聊PropertyPlaceholderConfigurer
- 【点分治】Tree(luogu 4178/金牌导航 点分治-1)
- ArrayList与String[]
- php面试题2018mysql_PHP程序员必会的MySQL面试题
- 移植RTT使用cubeMx配置后出现 cannot open source input file stm32f1xx_hal_exti.h: No such file or directory
- Spark Yarn Client模式双网卡-多hostname导致问题(阿里云)
- 对话Google全球VP Jay Yagnik:TensorFlow2.0会强化可控性
- Sonar问题及解决方案汇总
- 服务器如何修改内存大小,如何限制docker容器的内存大小
- 大数据,数据分析,机器学习,架构等相关系统名称名词解释
- CentOS7.0系统安全加固实施方案
- python中show函数的用法_python学习笔记之——函数模块
- 内存数据库fastdb的使用研究报告
- 华为设备SEP配置命令
- 微信公众平台 微接口 接口100 API100 接口大全(转) 开发微信功能简便了
- 强化学习的10个现实应用
- 把Windows换行符替换成UNIX换行符
- c语言指针b 和b j,c语言精华 ------ 指针和数组
热门文章
- [SQL实战]之查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
- Flutter进阶—质感设计之模态底部面板
- eclipse读取mysql数据乱码_eclipse从数据库获取数据时控制台乱码问题
- 【Vue】v-if与v-show的区别
- java中使用tika_Tika基本使用
- linux ssh ip地址命令,关于Linux:在ssh会话中查找客户机的IP地址
- 这一次,苹果、Google、微软选择了统一战线!
- 都在夸官方文档 Vue.js 2021 年度报告出炉!
- Python的底气,是从哪儿来的?
- UCloud发布新一代归档存储产品,存储成本直降80%