BT

Next.js提供了基于React的简单通用JavaScript框架

| 作者 David Iffland ,译者 张卫滨 发布于 2016年11月7日. 估计阅读时间: 不到一分钟 | 注意: 挥一挥衣袖,带走满满干货,关注活动大本营,时不时发福利呦!

新的通用JavaScript框架Next.js目前已经开源了,它为基于React和服务器的Web应用提供了一个新的可选方案。

来自Zeit的团队在React的基础和组件模型上构建了Next.js,同时还提供了一个关键扩展:通过使用名为getInitialProps()的组件生命周期钩子方法,框架能够在服务器上进行初始渲染,如果需要的话,还可以在客户端继续进行渲染。不过这个高级特性是一个很小却功能强大的框架所额外提供的。

按照Next.js的最小功能集,它提供了一种便利的方式来创建新的Web应用,这个过程中,并不需要很多的工具集配置。类似于create-react-app,安装这个框架会搭建一个基于React、Webpack和Babel的构建过程。以往编写React组件的开发人员将会基于React语法来创建页面,每个页面提供了一个render函数:


import React from 'react'
export default () => 
Hello world!

Next.js使用filesystem作为API,所以每个放到pages文件夹中的组件将会自动映射为一个基于服务器的路由。比如,磁盘上的pages/about.js组件将会自动服务于/about这个URL。

express-react-views这样的项目不同,它是构建在Express之上的视图引擎,而next.js是一个顶层的服务层,只渲染JavaScript函数的结果。为了实现这一点,该项目使用glamor来处理CSS,而不是依赖于单独的CSS文件。

在Next.js中,每个路由都是一个简单的ES6模块,这个模块会导出一个函数或扩展自React.Component的类。

Next.js这种本质上的倾向性会有一些微妙的优势,其中之一就是开发人员不必在搭建Webpack或Babel配置上花费时间了。以往,这两个步骤就会耗费开发人员很多的时间。要运行某个站点的开发版本,只需运行npm run dev

对于一些开发团队来说,通用(Universal)的JavaScript依然是一项更为高级的技术,很多的框架都有自己的实现。Angular 2有Universal Angular 2, Ember有Fastboot。在React领域中,这方面的可选方案也不少,比如Walmart的Electrode和Redfin的React Server。现在,Next.js作为一个很简单的可选方案,具有很大的潜力。该项目在GitHub上已经开源。

查看英文原文Next.js Offers Simple Universal JavaScript Framework Based on React

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论
BT