


react-router4 cooperates with webpack require.ensure to implement asynchronous loading (detailed tutorial)
This article mainly introduces the example of react-router4 with webpack require.ensure to achieve asynchronous loading. It is of great practical value. Friends in need can refer to the
method to achieve asynchronous loading. In the final analysis, most of them are based on Webpack's require.ensure is implemented
The first is to use require.ensure to implement it,
The second is to use loader to implement
Today we are talking about using bundle- loader to implement it, so that the code is more elegant.
First you need to install bundle-loader. Whether to use npm or yarn depends on what package management you use.
The following requires a bundle.js
import React, { Component } from 'react'; export default class Bundle extends Component { constructor(props) { super(props); this.state = { mod: null }; } componentWillMount() { this.load(this.props); } componentWillReceiveProps(nextProps) { if (nextProps.load !== this.props.load) { this.load(nextProps); } } load(props) { this.setState({ mod: null }); props.load(mod => { this.setState({ mod: mod.default ? mod.default : mod }); }); } render() { return this.state.mod ? this.props.children(this.state.mod) : null; } }
Then introduce bundle.js, and also introduce the files that need to be asynchronous, but you need to add
bundle-loader?lazy&name=[name]!
For example :
import Bundle from './components/bundle.js'; import ListComponent from 'bundle-loader?lazy&name=[name]!./file/List.jsx';
The following is the configuration for adding routing:
<Route path="/list" component={List} />
and the chunkFilename for configuring the output
chunkFilename: '[name]-[id].[chunkhash:4].bundle.js'
After the chunkFilename is configured, the name of the file loaded asynchronously will be as follows The above naming method shows that if it is not configured, it will be the number generated by webpack.
After the above is configured, it’s time to use the bundle. You see that the component configured on the route corresponds to List, so we need to write a List:
const List = (props) => ( <Bundle load={ListComponent}> {(List) => <List {...props}/>} </Bundle> );
The above is me I compiled it for everyone, I hope it will be helpful to everyone in the future.
Related articles:
How to implement the waterfall flow plug-in using JS
How to implement the function of converting html to pdf in JS
How to implement the pasteboard copy function using JS
How to implement offset and uniform animation in JS
How to implement table merge cells in Bootstrap
How to implement obtaining the first value in the select drop-down box in JavaScript
In AngularJS How to get and display the password in real time
The above is the detailed content of react-router4 cooperates with webpack require.ensure to implement asynchronous loading (detailed tutorial). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The secret of Ajax anomaly is revealed. How to deal with various errors requires specific code examples. In 2019, front-end development has become an important position that cannot be ignored in the Internet industry. As one of the most commonly used technologies in front-end development, Ajax can realize asynchronous page loading and data interaction, and its importance is self-evident. However, various errors and exceptions are often encountered when using Ajax technology. How to deal with these errors is a problem that every front-end developer must face. 1. Network errors When using Ajax to send requests, the most common error is

Title: Methods and code examples to solve the problem that jQuery.val() does not work. In front-end development, jQuery is often used to operate page elements. Among them, getting or setting the value of a form element is one of the common operations. Usually, we use jQuery's .val() method to operate on form element values. However, sometimes you encounter situations where jQuery.val() does not work, which may cause some problems. This article will introduce how to effectively deal with jQuery.val(

Delegation is a type-safe reference type used to pass method pointers between objects to solve asynchronous programming and event handling problems: Asynchronous programming: Delegation allows methods to be executed in different threads or processes, improving application responsiveness. Event handling: Delegates simplify event handling, allowing events such as clicks or mouse movements to be created and handled.

Although HTML itself cannot read files, file reading can be achieved through the following methods: using JavaScript (XMLHttpRequest, fetch()); using server-side languages (PHP, Node.js); using third-party libraries (jQuery.get() , axios, fs-extra).

A must-have for front-end developers: master these optimization modes and make your website fly! With the rapid development of the Internet, websites have become one of the important channels for corporate promotion and communication. A well-performing, fast-loading website not only improves user experience, but also attracts more visitors. As a front-end developer, it is essential to master some optimization patterns. This article will introduce some commonly used front-end optimization techniques to help developers better optimize their websites. Compressed files In website development, commonly used file types include HTML, CSS and J

To include an external JS file in HTML, use the <script> tag and specify the URL of the file to load. You can also specify type, defer, or async attributes to control how loading and execution occur. Typically, the <script> tag should be placed at the bottom of the <body> section to avoid blocking page rendering.

How to prevent page redirection in WordPress? In website development, sometimes we want to implement a page non-jump setting in WordPress, that is, during certain operations, the page content can be updated without refreshing the entire page. This improves user experience and makes the website smoother. Next, we will share how to implement the page non-jump setting in WordPress and provide specific code examples. First, we can use Ajax to prevent the page from jumping. Ajax

PHP search function has always been a very important part of website development, because users often use the search box to find the information they need. However, many websites have problems such as low efficiency and inaccurate search results when implementing search functions. In order to help you optimize PHP search function, this article will share some tips and provide specific code examples. 1. Use full-text search engines. Traditional SQL databases are less efficient when processing large amounts of text content. Therefore, it is recommended to use full-text search engines, such as Elasticsearch, Solr, etc.
