QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

  • 2016-11-06
  • 本文字数:904 字

    阅读完需:约 3 分钟

新的通用 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 () => <p>Hello world!</p>

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

2016-11-06 19:0016594

评论

发布
暂无评论
发现更多内容

盘点2020 | 寒门难出贵子,我当程序员让爸妈在老家长脸了

爱笑的架构师

Java 程序员 程序人生 编程之路 盘点2020

2020年文章合集

Rayjun

测开之数据类型· 第4篇《迭代器、生成器》

清菡软件测试

测试开发

Java渣渣外包开发3年,4面终揽下美团面试官,含泪拿到22koffer

比伯

Java 编程 程序员 架构 面试

懒人神器——新手必备的图片后期处理软件

懒得勤快

图片后期 修图 滤镜 ps

算法太TM重要了!实战讲述Flutter跨平台框架应用,3面直接拿到offer

欢喜学安卓

android 程序员 面试 移动开发

架构师训练营 -week13-作业

大刘

极客大学架构师训练营

互联网架构总结

J

极客大学架构师训练营

智能合约Dapp系统开发,区块链智能合约技术

薇電13242772558

区块链 智能合约

如何让组织文化不在虚无?

Alan

团队管理 个人提升 文化 28天写作

Netty RPC Demo 实现

Java RPC Demo

六度空间系统APP开发|六度空间软件开发(现成)

系统开发

Week 13

黄立

流动性挖矿DAPP软件系统开发

系统开发

区块链落地应用开发- 珠宝溯源,不当“冤大头”

13828808769

区块链技术 区块链落地开发 珠宝溯源

字节首发Redis笔记,基础+原理+应用+源码+拓展五大核心模块

Java架构追梦

Java redis 编程 架构 面试

阿里9年老开发终于总结出微服务架构设计模式PDF了

小Q

Java 学习 编程 架构 面试

阿里技术分享:电商IM消息平台,在群聊、直播场景下的技术实践

JackJiang

即时通讯 IM 群聊

elasticsearch打怪升级之基础篇

泽睿

ES

冰河,能不能讲讲如何实现MySQL数据存储的无限扩容?

冰河

MySQL 分布式存储 海量数据 mycat 可扩展

Himly TCC Dubbo 程序示例

Java 分布式事务 dubbo TCC Himly

太赞了!2021疫情期间八家大厂的Android面试经历和真题整理,值得收藏!

欢喜学安卓

android 程序员 面试 移动开发

生产环境全链路压测建设历程13:淘宝网稳定性近十年发展历程 2009年-2019年

数列科技杨德华

全链路压测 七日更

光知道SpringBoot,不用thymeleaf就太不对了

小Q

Java 学习 编程 面试 Spring Boot

海量小文件存储系统HOS探索与实践

Galaxy数据平台

大数据 OSS 对象存储 HBase GEEDGE NETWORKS

Eureka 架构原理及其源码分析

飞鸟

Spring Cloud Eureka

太牛了!在字节跳动我是如何当面试官的,Android篇

欢喜学安卓

android 程序员 面试 移动开发

世界之书:《人类简史》与想象中的共同体

lidaobing

28天写作

03-week4-homework

J

极客大学架构师训练营

架构师训练营 -week13-总结

大刘

极客大学架构师训练营

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?

我们新四军不拿群众一针一线

Next.js提供了基于React的简单通用JavaScript框架_JavaScript_David Iffland_InfoQ精选文章