Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A minimalistic framework for universal server-rendered React applications

License

NotificationsYou must be signed in to change notification settings

JavaScriptExpert/next.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Next.js is a minimalistic framework for server-rendered React applications.

How to use

The file-system is the main API. Every.js file becomes a route that gets automatically processed and rendered.

Populatepages/index.js inside your project:

import React from 'react'export default () => (  <div>Welcome to next.js!</div>)

and then just runnext and go tohttp://localhost:3000

So far, we get:

  • Automatic transpilation and bundling (with webpack and babel)
  • Hot code reloading
  • Server rendering and indexing

Bundling (code splitting)

Everyimport you declare gets bundled and served with each page

import React from 'react'import cowsay from 'cowsay'export default () => (  <pre>{ cowsay('hi there!') }</pre>)

That means pages never load unneccessary code!

CSS

We useAphrodite to provide a great built-in solution for CSS modularization

import React from 'react'import { css, StyleSheet } from 'next/css'export default () => {  <div className={ css(styles.main) }>    Hello world  </div>})const styles = StyleSheet.create({  main: {    background: 'red',    '@media (max-width: 600px)': {      background: 'blue'    }  }})

<head> side effects

We expose a built-in component for appending elements to the<head> of the page.

import React from 'react'import Head from 'next/head'export default () => (  <Head>    <title>My page title</title>    <meta name="viewport" content="initial-scale=1.0, width=device-width" />  </Head>  <p>Hello world!</p>)

Stateful components

When state, lifecycle hooks or initial data population you can export aReact.Component:

import React from 'react'export default class extends React.Component {  async getInitialProps ({ isServer, req }) {    return isServer      ? { userAgent: req.headers.userAgent }      : { userAgent: navigator.userAgent }  }  render () {    return <div>      Hello World {this.props.userAgent}    </div>  }}

Routing

Client-side transitions between routes are enabled via a<Link> component

pages/index.js

import React from 'react'import Link from 'next/link'export default () => (  <div>Click <Link href="/about"><a>here</a></Link> to read more</div>)

pages/about.js

import React from 'react'export default () => (  <p>Welcome to About!</p>)

Client-side routing behaves exactly like the native UA:

  1. The component is fetched
  2. If it definesgetInitialProps, data is fetched. If an error occurs,_error.js is rendered
  3. After 1 and 2 complete,pushState is performed and the new component rendered

Each top-level component receives aurl property with the following API:

  • path -String of the current path excluding the query string
  • query -Object with the parsed query string. Defaults to{}
  • push(url) - performs apushState call associated with the current component
  • replace(url) - performs areplaceState call associated with the current component
  • pushTo(url) - performs apushState call that renders the newurl. This is equivalent to following a<Link>
  • replaceTo(url) - performs areplaceState call that renders the newurl

Error handling

404 or 500 errors are handled both client and server side by a default componenterror.js. If you wish to override it, define a_error.js:

import React from 'react'export default ({ statusCode }) => (  <p>An error { statusCode } occurred</p>)

Production deployment

To deploy, run:

next buildnext start

For example, to deploy withnow apackage.json like follows is recommended:

{  "name": "my-app",  "dependencies": {    "next": "latest"  },  "scripts": {    "dev": "next",    "build": "next build",    "start": "next start"  }}

About

A minimalistic framework for universal server-rendered React applications

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript100.0%

[8]ページ先頭

©2009-2025 Movatter.jp