Next.js

Next.js是什么

Next.js是一套基于React的服务器端渲染框架。在React模块化的基础上,带来以下几点好处:

1、默认服务端渲染模式

2、代码自动分隔使页面加载更快

3、以文件系统为基础的客户端路由

4、以webpack的热替换为基础的开发环境

5、使用React的JSX和ES6的module,模块化和维护更方便

6、可以运行在Express和其他Node.js的HTTP 服务器上

7、可以定制化专属的babel和webpack配置

总之一句话:保持强大的同时更好用!

Next.js的小零碎

安装

// 将react和next安装到本地依赖

$ npm install --save react react-dom next

工具

// 开发模式,开启开发服务器,默认3000端口。热加载

$ next

// 打包

$ next build

// 启动

$ next start

路由

1、基于文件系统的路由。从项目目录开始,pages目录是根目录,并默认取 pages/index.js 作为系统的首页进行展示;其他目录,比如static,对应“/static”路径。

2、每个路由都是一个ES6模块(一个函数或者React.Component的子类)

CSS

next.js支持css in js

import React from 'react'

import css from 'next/css'

export default () =>

Hi there!

const style = css({

                            color: 'red',

                            ':hover': { color: 'blue' },

                            '@media (max-width: 500px)': { color: 'rebeccapurple' }})

组件初始化

next.js提供了一个基于React组件的约定,就是getInitialProps,可以在getInitialProps做一些初始化操作,比如加载、组装数据。

getInitialProps必须返回一个js对象或者能够解析成js对象的Promise实例,这个js对象将会成为React组件的props属性。

示例代码:

import React from 'react'

import 'isomorphic-fetch'

export default class extends React.Component {

    static async getInitialProps () {

        const res = await fetch('https://api.company.com/user/123')

        const data = await res.json()

        return { username: data.profile.username }

    }

}

你可能感兴趣的:(Next.js)