Giter VIP home page Giter VIP logo

react-router-render's Introduction

react-router-render

Render isomorphic React apps and components in Node.

  • Using React Router

Compatible with React Router 5.

An example implementation of the companion package @sequencemedia/react-router-redux-render can be found in react-router-pagination-io.

Example

In Express:

const express = require('express')

const app = express()
const port = 3000

const routes = require('./path/to/routes')

const {
  renderToString
} = require('react-router-render')

app.get('/', ({ url: { path: pathname = '/' } }, res) => res.send(renderToString(routes, pathname)))

app.listen(port, () => console.log(`Express ${port}`))

If React Router matches the pathname to a <Route /> then renderToString returns a string.

If renderToString encounters an error then it throws a 500 Internal Server Error.

If renderToString cannot match the pathname to a <Route /> then it throws a 404 Not Found.

In this package

react-router-render exports three functions:

  1. renderToString
  2. renderToStaticMarkup
  3. render

renderToString generates <html /> including the attributes that React uses in ReactDOM.hydrate(). It implements ReactDOMServer.renderToString().

renderToStaticMarkup doesn't include those attributes. It's useful for using React as a rendering engine for static pages. It implements ReactDOMServer.renderToStaticMarkup().

render executes renderToString but returns a Promise which resolves to a string.

Companion packages

  1. @sequencemedia/react-router-redux-render for React Router apps (with Redux)
  2. @sequencemedia/react-redux-render for React Redux apps (without React Router)
  3. @sequencemedia/react-render for React apps (without React Router or Redux)

react-router-render's People

Contributors

sequencemedialimited avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.