GithubHelp home page GithubHelp logo

zonybir / react-router-loader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from luqin/react-router-loader

0.0 2.0 0.0 21 KB

Dynamically load react-router components on-demand, based on react-proxy-loader

JavaScript 100.00%

react-router-loader's Introduction

react-router-loader

Based on react-router-proxy-loader and react-proxy-loader, adapted for react-router route handlers.

NPM version Build Status

Dependency Status devDependency Status peerDependency Status

Installation

npm install react-router-loader --save-dev

Dependencies

Which version to use depends on your version of react-router

react-router react-router-loader
1.x 0.4.x
2.x and above 0.5.x

Usage

Documentation: Using loaders

Use when requiring the component for a Route, and the component will only be loaded when the route is rendered.

<Route component={require('react-router!./Component')} />

Named chunks

You can give the chunk a name with the name query parameter:

<Route component={require('react-router?name=chunkName!./Component')} />

Default global named chunks (0.5.4 and above)

import ReactRouterLoader from 'react-router-loader';
ReactRouterLoader.setDefaultQueryName('[path][name]xyz');

Named chunks with placeholders (0.5.4 and above)

You can also use the standard Webpack placeholders in the name of your chunks.

<Route path="details" component={require('react-router-proxy?name=[name]!./UserDetails.jsx')}>
<Route path="settings" component={require('react-router-proxy?name=[name]!./UserSettings.jsx')}>
<Route path="other" component={require('react-router-proxy?name=[name]!./UserOther.jsx')}>

Would generate three chunks, exported in userdetails.js, usersettings.js and so on. Using this approach allows you to setup your loader globally through an exclude/include rule in your webpack.config.js. To avoid conflicts it may be best to prefix your name with a subfolder name, such as routes/:

loaders: [
    {
        test: /\.js$/,
        exclude: /src\/Pages/,
        loader: 'babel',
    },
    {
        test: /\.js$/,
        include: /src\/Pages/,
        loaders: ['react-router-proxy?name=routes/[name]', 'babel'],
    }
],

This has the advantage of making your router a lot leaner:

<Route path="details" component={require('./UserDetails.jsx')}>
<Route path="settings" component={require('./UserSettings.jsx')}>
<Route path="other" component={require('./UserOther.jsx')}>

The generated files would then go into routes/userdetails, routes/usersettings etc.

License

MIT (http://www.opensource.org/licenses/mit-license.php)

react-router-loader's People

Watchers

James Cloos avatar zony_zhang 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.