React 服务端渲染框架 next.js

作者: Lupino | 来源:发表于2017-04-04 10:34 被阅读1154次

next.js 服务端渲染框架真的是一个救命的稻草。在此之前我一直在寻找 React 服务端渲染的框架,一直没有一个满意的答案,直到碰到 next.js

那么 next.js 与标准的 React.Component 有何区别吗?

通过阅读代码我发现 next.js 多了一个初始化 props 的函数。

// file: lib/utils.js
export async function loadGetInitialProps (Component, ctx) {
  if (!Component.getInitialProps) return {}

  const props = await Component.getInitialProps(ctx)
  if (!props && (!ctx.res || !ctx.res.finished)) {
    const compName = Component.displayName || Component.name
    const message = `"${compName}.getInitialProps()" should resolve to an object. But found "${props}" instead.`
    throw new Error(message)
  }
  return props
}

next.js 使用 Component.getInitialProps 来初始化组件。
Component.getInitialProps 被标记为异步的函数 (await), 因此返回一个 Promise 或者 async 标记的函数。这也为加载异步数据提供了保障。

Component.getInitialProps 的参数 ctx,浏览器端和服务器端不相同,依然通过代码来发现。

// file: server/render.js#L52
const ctx = { err, req, res, pathname, query }
// file: client/index.js#L102
props = await loadGetInitialProps(Component, { err, pathname, query })

从两段代码可以得知服务端多了 { req, res }req 是服务端 Request 对象, res 是服务端 Response。有了这两东西就可以做很多事情了。

当然 next.js 作为一个框架,做的事情不止这一些,还有一些和神奇的东西,需要使用时进一步了解。

相关文章

  • 最简单的服务端渲染框架-Next.js

    最简单的服务端渲染框架-Next.js 快速入门 Next.js是一个用于React应用的极简的服务端渲染框架。框...

  • React服务端渲染,告别页面白屏

    React+Mobx+Express服务端渲染 Next.js是服务端渲染呈现的React应用程序的简约框架,这个...

  • next.js 的初见

    next.js简介 next.js 是一个基于react 的服务端渲染的框架 什么是服务端渲染? 和客户端渲染有什...

  • React next.js基础教程之制作马云模拟器

    Next.js简介Next.js 是一个轻量级的 React 服务端渲染应用框架。完善的React项目架构,搭建轻...

  • Next.js 初试

    title: next.js入门tag:next.js, react 序章 服务端渲染 服务端渲染(SSR: Se...

  • Nextjs中文文档

    Next.js 是一个轻量级的 React 服务端渲染应用框架。 Next.js中文站点 http://nextj...

  • next.js学习

    next.js是什么 Next.js 是一个轻量级的 React 服务端渲染应用框架。 用 create-next...

  • React-SSR-Nextjs

    [TOC] Nextjs 关于Nextjs的介绍 Next.js 是一个轻量级的 React 服务端渲染应用框架。...

  • React 服务端渲染框架 next.js

    next.js 服务端渲染框架真的是一个救命的稻草。在此之前我一直在寻找 React 服务端渲染的框架,一直没有一...

  • Next.js新手教程

    Next.js 是一个轻量级的 React 服务端渲染应用框架。本教程演示使用Next.js制作一个显示比特币汇率...

网友评论

    本文标题:React 服务端渲染框架 next.js

    本文链接:https://www.haomeiwen.com/subject/zijaottx.html