点击上方“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 何去何从?相关推荐

  1. 前端每周清单第 45 期: Safari 支持 Service Worker, Parcel 完整教程, 2017 前端大事件...

    前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点:分为新闻热点.开发教程.工程实践.深度阅读.开源项目.巅峰人生等栏目.欢迎关注[前端之巅]微信公众号(ID: fron ...

  2. 2017 科技大事件回顾:智能音箱大战、数据泄露于内贼

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! "技术会有一个前进的方向,我们把它称作'必然',也就是说,这个趋势像重力一样,一定 ...

  3. 谁说 Java 要过时?2017 年 Java 大事件回顾!

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 在过去的一年中,Java 历经了许多变化.在今年年初,Java EE 处于一个不确定的状态, ...

  4. 回顾2018——区块链行业十大关键词

    文章转自: https://tech.sina.com.cn/it/2019-01-03/doc-ihqfskcn3630778.shtml 2018年已经过去,对于区块链行业来说,这是加密货币暴跌的 ...

  5. 谁说 Java 要过时?2017 年 Java 大事件一览及未来前瞻

    在过去的一年中,Java 历经了许多变化.在今年年初,Java EE 处于一个不确定的状态,Java 9 版本也推迟了它的发布日期.在 2016 年的 JavaOne 上,甲骨文宣布了解决平台的计划和 ...

  6. github issue 搜索_回顾 2020 年 GitHub 的大事件,你知道多少?

    作者:HelloGitHub-小鱼干 这里是 HelloGitHub 出品的年度盘点系列,本期我们将盘点 GitHub 在 2020 发生的大事件,回顾一下今年 GitHub 给我们带来了那些惊喜.故 ...

  7. App Store 2018年年度大事件

    1 Apple 年度大事件 1 2018.1.9 首次调整:2018年APP关键词第一次出现大批量变动 2 2018.1.25 IOS11.3 测试版:苹果公司发布iOS11.3测试版 3 2018. ...

  8. 2017 年十大网页设计趋势

    2019独角兽企业重金招聘Python工程师标准>>> 自身.互动.相关这三个关键词,是用户期望通过他们的 UX 设计来满足的体验.而这也意味着网页设计师将要面临更加严峻的网站开发挑 ...

  9. 回顾2006年:网络通信十大事件

    回顾2006年:网络通信十大事件 2006年对于网络通信的技术发展来说,是稳步前进的一年:对于网络通信的市场格局来说,是充满变化的一年.一方面,我们看到WiMAX.HSPA等移动宽带技术稳步发展,融合 ...

最新文章

  1. jvm四:常量的本质含义以及助记符基本认识
  2. 链路层的网卡聚合-基于Linux bonding
  3. spring源码分析,聊聊PropertyPlaceholderConfigurer
  4. 【点分治】Tree(luogu 4178/金牌导航 点分治-1)
  5. ArrayList与String[]
  6. php面试题2018mysql_PHP程序员必会的MySQL面试题
  7. 移植RTT使用cubeMx配置后出现 cannot open source input file stm32f1xx_hal_exti.h: No such file or directory
  8. Spark Yarn Client模式双网卡-多hostname导致问题(阿里云)
  9. 对话Google全球VP Jay Yagnik:TensorFlow2.0会强化可控性
  10. Sonar问题及解决方案汇总
  11. 服务器如何修改内存大小,如何限制docker容器的内存大小
  12. 大数据,数据分析,机器学习,架构等相关系统名称名词解释
  13. CentOS7.0系统安全加固实施方案
  14. python中show函数的用法_python学习笔记之——函数模块
  15. 内存数据库fastdb的使用研究报告
  16. 华为设备SEP配置命令
  17. 微信公众平台 微接口 接口100 API100 接口大全(转) 开发微信功能简便了
  18. 强化学习的10个现实应用
  19. 把Windows换行符替换成UNIX换行符
  20. c语言指针b 和b j,c语言精华 ------ 指针和数组

热门文章

  1. [SQL实战]之查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
  2. Flutter进阶—质感设计之模态底部面板
  3. eclipse读取mysql数据乱码_eclipse从数据库获取数据时控制台乱码问题
  4. 【Vue】v-if与v-show的区别
  5. java中使用tika_Tika基本使用
  6. linux ssh ip地址命令,关于Linux:在ssh会话中查找客户机的IP地址
  7. 这一次,苹果、Google、微软选择了统一战线!
  8. 都在夸官方文档 Vue.js 2021 年度报告出炉!
  9. Python的底气,是从哪儿来的?
  10. UCloud发布新一代归档存储产品,存储成本直降80%