网站LOGO
2018年前端开发五大趋势

 

对于开发者而言,2017出奇的高效,不过2018年有望为IT领域带来更多发展。本文中,为了处理项目时紧跟潮流,我们会描述出每个前端编程人都需要关注的2018年JavaScript的五种主要发展趋势。

1. Vue.js

就在两年前,很难想象Vue.js能够忍受迅猛发展的React系统的竞争。经过深思熟虑且久经时间考验的Angular是一回事,但是Vue ……我们没想到这个环境成为前端技术工具列表中的佼佼者。 对于那些不熟悉Vue的读者,让我们简要介绍一下它的制胜之道。

为何Vue.js居于榜首?首先,很容易学习并且拥有灵活的创建前端代码的环境,这使得代码编写的出错率较低。Vue的开发者Evan You曾在Angular工作过。 他确定后者对于UI的构建而言不必要且繁琐,他大胆地创建了一个入口门槛很低的前端创建解决方案,因此Vue出现。 它旨在帮助那些编程经验很少的设计人员将所有工作都用于创建功能界面。 此外,Vue.js支持声明式呈现,异步DOM更新,双向数据绑定,以及严格遵守Web组件规范和HTML模板的简单集成。

到目前为止,Vue.js的特性被一个小型的社区支持(相比于React和Angular这种当前特别流行的库来说,这是通过React和Angular的消息来源得到的)。一般来说,如果Angular甚至是React——Javascript最流行的库之一——对你来说过于复杂,而且看起来相当严格和不灵活,那你绝对应该在2018年就结识Vue。

2.Angular

尽管我们在2018年看到的顶级Javascript库的竞争趋势直接在Angular和Vue.js之间展开,但前者在来年的实用性不会减少。如果你之前还没有使用Angular工作(至少是使用Angular 2),那么你一定要熟悉它的优点。让我们开始吧。

首先,这个框架需要Javascript与HTML和CSS。第二,它是团队协作的理想选择,因为它创建的应用程序可以明确划分为组件 – 业务逻辑和前端。这是可能的,因为开发环境是基于MVVM(模型-视图-视图-模型)模式下的。第三,Angular是创建可扩展应用程序的理想选择,支持与第三方库的简单集成。这个框架经常用于构建动态的移动应用,因为它使用了双向数据绑定,这种方法增加了带有丰富动画元素的应用程序的响应能力。

现在,让我们来讨论一下Angular的缺点。第一件事情,也是开发人员经常提到的,就是在移动设备上的高耗电量(不过与其他框架相比,通过正确的代码优化,可以减少这个问题)和高入门门槛(如果你是从头开始使用Angular开始工作,那么你要准备好去花费1.5到2个月的时间去学习它的大量文档)。

如果我们总结一下上述不同的框架所克服的各种问题,我们可以说Angular是一个久经考验的框架,通过适当的模块化处理,使得它可以构建出可扩展的解决方案(这足以从相关的demo中证明)。因此,我们自信的推断,尽管每年都有越来越多的JS框架进入IT市场,Angular依然是近几年来最好的Javascript框架之一。

3. GraphQL

GraphQL是一种有着奇怪语法的API查询语言,由Facebook开发者们开发。它的目的是超越传统的REST APIs的功能,同时简化多个源传输的数据集合。

让我们举个具体的列子。想象一下,你需要在正在构建的社交网络框架中显示帖子列表,以及用户的喜好(点赞、收藏等)。在实现方面,这个例子很简单,你只需从下一个端点发出请求。但是,由于这些数据可能来自不同的来源(例如,如果帖子存储在 MongoDB或Redis中),生成的应用将比舒适的工作慢得多。此外,如果您考虑到,随着时间的推移,数据的大小会增加,因此需要更多的存储空间,你会意识到,REST API迟早会耗尽其效率。这就是GraphQL的用武之地,使用GraphQL而不是使用单独的端点来访问每个资源。你可以使用单个端点,该端点能够同时处理涉及多个数据源的复杂查询。与REST模型相比,GraphQL是一个智能的个人助理,使用你指定的源地址,提供所需的内容。

GraphQL的实力也得到了证明:2017年,它被Github,Spotify,Walmart等知名公司所采用。

4.Gatsby

如果你的预算比较紧张,但是同时又希望在你的项目中只使用高级技术,那么你一定要尝试 Gatsby。Gatsby 是 Kyle Matthews 为静态的创建而构建的新型解决方案。

它如何优于同行?与 Jekyll,Hugo 或 Hexo 等流行解决方案不同,这个静态生成器不使用模板,而是信赖于 Webpack 和 React 组件(注意 React 官网本身也是在 Gatsby 的帮助下编写的)。因此,你可以获得自动更新和即时页面转换等优势。从1.0版本开始,Gatsby 使用了上面提到的 GraphQL。因此,在构建过程,它可以从多个 GraphQL API 中