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

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Populate./pages/index.js inside your project:

importReactfrom'react'exportdefault()=>(<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 of./pages
  • Static file serving../static/ is mapped to/static/

Bundling (code splitting)

Everyimport you declare gets bundled and served with each page

importReactfrom'react'importcowsayfrom'cowsay'exportdefault()=>(<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

importReactfrom'react'import{css,StyleSheet}from'next/css'exportdefault()=>{<divclassName={css(styles.main)}>    Hello world</div>})conststyles=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.

importReactfrom'react'importHeadfrom'next/head'exportdefault()=>(<Head><title>My page title</title><metaname="viewport"content="initial-scale=1.0, width=device-width"/></Head><p>Helloworld!</p>)

Stateful components

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

importReactfrom'react'exportdefaultclassextendsReact.Component{asyncgetInitialProps({ isServer, req}){returnisServer      ?{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

importReactfrom'react'importLinkfrom'next/link'exportdefault()=>(<div>Click<Linkhref="/about"><a>here</a></Link> to read more</div>)

pages/about.js

importReactfrom'react'exportdefault()=>(<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:

importReactfrom'react'exportdefault({ 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