9.0.3 • Published 4 months ago

inferno-router v9.0.3

Weekly downloads
302
License
MIT
Repository
github
Last release
4 months ago

inferno-router

Inferno Router is a routing library for Inferno. It is a port of react-router 4.

Install

npm install inferno-router

Features

Same as react-router v4, except react-native support which we have tested at this point.

See official react-router documentation

Client side usage

import { render } from 'inferno';
import { BrowserRouter, Route, Link } from 'inferno-router';

const Home = () => (
  <div>
    <h2>Home</h2>
  </div>
);

const About = () => (
  <div>
    <h2>About</h2>
  </div>
);

const Topic = ({ match }) => (
  <div>
    <h3>{match.params.topicId}</h3>
  </div>
);

const Topics = ({ match }) => (
  <div>
    <h2>Topics</h2>
    <ul>
      <li>
        <Link to={`${match.url}/rendering`}>
          Rendering with React
        </Link>
      </li>
      <li>
        <Link to={`${match.url}/components`}>
          Components
        </Link>
      </li>
      <li>
        <Link to={`${match.url}/props-v-state`}>
          Props v. State
        </Link>
      </li>
    </ul>

    <Route path={`${match.url}/:topicId`} component={Topic}/>
    <Route exact path={match.url} render={() => (
      <h3>Please select a topic.</h3>
    )}/>
  </div>
);

const MyWebsite = () => (
  <BrowserRouter>
    <div>
      <ul>
        <li><Link to="/">Home</Link></li>
        <li><Link to="/about">About</Link></li>
        <li><Link to="/topics">Topics</Link></li>
      </ul>
      <hr/>
      <Route exact path="/" component={Home}/>
      <Route path="/about" component={About}/>
      <Route path="/topics" component={Topics}/>
    </div>
  </BrowserRouter>
);

// Render HTML on the browser
render(<MyWebsite />, document.getElementById('root'));

Sever side usage with Koa

First, let's create our component to render boilerplate HTML, header, body etc.

import Koa from 'koa';
import { renderToString } from 'inferno-server';
import { Switch, StaticRouter, Route } from 'inferno-router';

const app = new Koa();

function Index({children}) {
  return (
    <html>
    <head>
      <meta charSet="utf-8"/>
      <title>Inferno</title>
    </head>
    <body>
    <div id="app">{children}</div>
    </body>
    </html>
  )
}

// Example routes
function Home() {
  return <div>Welcome Home!</div>
}

function Foo() {
  return <span>Bar</span>
}

function NotFound() {
  return <h2>404</h2>;
}

const routes = (
  <Switch>
    <Route exact path="/" component={Home}/>
    <Route exact path="/demo" component={Foo}/>
    <Route path="*" component={NotFound}/>
  </Switch>
);

// Server-side render
async function render(ctx, next) {
  const context = {};
  const content = renderToString(
    <StaticRouter location={ctx.url} context={context}>
      <Index hostname={ctx.hostname}>
        {routes}
      </Index>
    </StaticRouter>
  );

  // This will contain the URL to redirect to if <Redirect> was used
  if (context.url) {
    return ctx.redirect(context.url);
  }

  ctx.type = 'text/html';
  ctx.body = '<!DOCTYPE html>\n' + content;
  await next();
}

// Add infero render as middleware
app.use(render);


app.listen(8080, function () {
  console.log('Listening on port ' + 8080);
});

Differences with React-Router v4

  • No "official" react-native support.
  • There's no inferno-router-dom, all functionality is inside inferno-router
9.0.3

4 months ago

9.0.2

5 months ago

9.0.1

5 months ago

9.0.0

5 months ago

9.0.0-alpha.4

5 months ago

9.0.0-alpha.3

5 months ago

9.0.0-alpha.2

7 months ago

9.0.0-alpha.1

7 months ago

5.6.3

11 months ago

8.2.3

2 years ago

8.2.2

2 years ago

8.2.1

2 years ago

8.2.0

2 years ago

8.1.1

2 years ago

8.1.0

2 years ago

8.0.6

2 years ago

8.0.5

3 years ago

8.0.4

3 years ago

8.0.0-alpha.6

3 years ago

8.0.1

3 years ago

8.0.0

3 years ago

8.0.3

3 years ago

8.0.2

3 years ago

8.0.0-alpha.5

3 years ago

8.0.0-alpha.4

3 years ago

8.0.0-alpha.3

4 years ago

8.0.0-alpha.2

4 years ago

7.4.11

4 years ago

8.0.0-alpha.1

4 years ago

8.0.0-alpha.0

4 years ago

7.4.10

4 years ago

7.4.9

4 years ago

7.4.8

4 years ago

7.4.7

4 years ago

5.6.2

4 years ago

7.4.6

5 years ago

7.4.4

5 years ago

7.4.5

5 years ago

7.4.3

5 years ago

7.4.2

5 years ago

7.4.1

5 years ago

7.4.0

5 years ago

7.3.3

6 years ago

7.3.2

6 years ago

7.3.1

6 years ago

7.3.0

6 years ago

7.2.1

6 years ago

7.2.0

6 years ago

7.1.13

6 years ago

7.1.12

6 years ago

7.1.11

6 years ago

7.1.10

6 years ago

7.1.9

6 years ago

7.1.8

6 years ago

7.1.7

6 years ago

7.1.6

6 years ago

7.1.5

6 years ago

7.1.4

6 years ago

7.1.3

6 years ago

7.1.2

6 years ago

7.1.1

6 years ago

7.1.0

6 years ago

7.0.5

6 years ago

7.0.4

7 years ago

7.0.2

7 years ago

7.0.1

7 years ago

7.0.0

7 years ago

6.3.1

7 years ago

6.3.0

7 years ago

6.2.1

7 years ago

6.2.0

7 years ago

6.1.5

7 years ago

6.1.4

7 years ago

6.1.3

7 years ago

6.1.2

7 years ago

6.1.1

7 years ago

6.1.0

7 years ago

6.0.3

7 years ago

6.0.2

7 years ago

6.0.1

7 years ago

6.0.0

7 years ago

6.0.0-rc.5

7 years ago

6.0.0-rc.3

7 years ago

6.0.0-rc.1

7 years ago

6.0.0-rc.0

7 years ago

6.0.0-alpha.3

7 years ago

6.0.0-alpha.2

7 years ago

6.0.0-alpha.1

7 years ago

5.6.1

7 years ago

5.6.0

7 years ago

6.0.0-alpha.0

7 years ago

5.5.0

7 years ago

5.4.2

7 years ago

5.4.1

7 years ago

5.4.0

7 years ago

5.3.0

7 years ago

5.2.0

7 years ago

5.1.1

7 years ago

5.1.0

7 years ago

5.0.6

7 years ago

5.0.5

7 years ago

5.0.4

7 years ago

5.0.3

7 years ago

5.0.2

7 years ago

5.0.1

7 years ago

5.0.0

7 years ago

5.0.0-2

7 years ago

5.0.0-1

7 years ago

5.0.0-0

7 years ago

4.0.8

7 years ago

4.0.7

7 years ago

4.0.6

7 years ago

4.0.5

7 years ago

4.0.4

7 years ago

4.0.3

7 years ago

4.0.2

7 years ago

4.0.1

7 years ago

4.0.0

7 years ago

4.0.0-21

7 years ago

4.0.0-20

7 years ago

4.0.0-19

7 years ago

4.0.0-18

7 years ago

4.0.0-17

7 years ago

4.0.0-16

7 years ago

4.0.0-15

7 years ago

4.0.0-14

7 years ago

4.0.0-13

7 years ago

4.0.0-12

7 years ago

4.0.0-11

7 years ago

4.0.0-10

7 years ago

4.0.0-9

7 years ago

4.0.0-8

7 years ago

4.0.0-7

7 years ago

4.0.0-6

7 years ago

4.0.0-5

7 years ago

4.0.0-4

7 years ago

4.0.0-3

8 years ago

4.0.0-2

8 years ago

4.0.0-1

8 years ago

4.0.0-0

8 years ago

3.10.1

8 years ago

3.10.0

8 years ago

3.9.0

8 years ago

3.8.2

8 years ago

3.8.1

8 years ago

3.8.0

8 years ago

3.7.1

8 years ago

3.7.0

8 years ago

3.6.4

8 years ago

3.6.3

8 years ago

4.0.0-alpha1

8 years ago

3.6.1

8 years ago

3.6.0

8 years ago

3.5.4

8 years ago

3.5.3

8 years ago

3.5.2

8 years ago

3.5.1

8 years ago

3.5.0

8 years ago

3.4.4

8 years ago

3.4.3

8 years ago

3.4.2

8 years ago

3.4.0

8 years ago

3.3.1

8 years ago

3.3.0

8 years ago

3.2.2

8 years ago

3.2.1

8 years ago

3.2.0

8 years ago

3.1.2

8 years ago

3.1.1

8 years ago

3.1.0

8 years ago

3.0.6

8 years ago

3.0.5

8 years ago

3.0.4

8 years ago

3.0.3

8 years ago

3.0.2

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.0.0

8 years ago

1.6.2

8 years ago

1.6.1

8 years ago

1.6.0

8 years ago

1.5.6

8 years ago

1.5.5

8 years ago

1.5.4

8 years ago

1.5.3

8 years ago

1.5.2

8 years ago

1.5.1

8 years ago

1.4.2

8 years ago

1.4.1

8 years ago

1.4.0

8 years ago

1.3.1

8 years ago

1.3.0

8 years ago

1.3.0-rc.10

8 years ago

1.3.0-rc.9

8 years ago

1.3.0-rc.8

8 years ago

1.3.0-rc.7

8 years ago

1.3.0-rc.6

8 years ago

1.3.0-rc.5

8 years ago

1.3.0-rc.4

8 years ago

1.3.0-rc.3

8 years ago

1.3.0-rc.2

8 years ago

1.3.0-rc.1

8 years ago

1.3.0-rc.0

8 years ago

1.2.2

8 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0-beta45

8 years ago

1.0.0-beta44

8 years ago

1.0.0-beta43

8 years ago

1.0.0-beta42

9 years ago

1.0.0-beta41

9 years ago

1.0.0-beta40

9 years ago

1.0.0-beta39

9 years ago

1.0.0-beta38

9 years ago

1.0.0-beta37

9 years ago

1.0.0-beta36

9 years ago

1.0.0-beta35

9 years ago

1.0.0-beta34

9 years ago

1.0.0-beta33

9 years ago

1.0.0-beta32

9 years ago

1.0.0-beta31

9 years ago

1.0.0-beta30

9 years ago

1.0.0-beta29

9 years ago

1.0.0-beta28

9 years ago

1.0.0-beta27

9 years ago

1.0.0-beta26

9 years ago

1.0.0-beta25

9 years ago

1.0.0-beta24

9 years ago

1.0.0-beta23

9 years ago

1.0.0-beta22

9 years ago

1.0.0-beta21

9 years ago

1.0.0-beta20

9 years ago

1.0.0-beta19

9 years ago

1.0.0-beta18

9 years ago

1.0.0-beta17

9 years ago

1.0.0-beta16

9 years ago

1.0.0-beta15

9 years ago

1.0.0-beta14

9 years ago

1.0.0-beta13

9 years ago

1.0.0-beta12

9 years ago

1.0.0-beta11

9 years ago

1.0.0-beta10

9 years ago

1.0.0-beta9

9 years ago

1.0.0-beta8

9 years ago

1.0.0-beta7

9 years ago

1.0.0-beta6

9 years ago

1.0.0-beta5

9 years ago

1.0.0-beta4

9 years ago

1.0.0-beta3

9 years ago

1.0.0-beta2

9 years ago

1.0.0-beta1

9 years ago

1.0.0-alpha11

9 years ago

1.0.0-alpha10

9 years ago

1.0.0-alpha9

9 years ago

1.0.0-alpha8

9 years ago

0.7.27

9 years ago

0.8.0-alpha3

9 years ago

0.8.0-alpha2

9 years ago

0.7.26

9 years ago

0.7.25

9 years ago

0.7.24

9 years ago

0.7.23

9 years ago

0.7.22

9 years ago

0.7.21

9 years ago

0.7.20

9 years ago

0.7.17

9 years ago

0.7.16

9 years ago

0.7.15

9 years ago

0.7.14

9 years ago

0.7.13

9 years ago

0.7.12

9 years ago

0.7.11

9 years ago

0.7.10

9 years ago