react-router4 配合webpack require.ensure 实现异步加载(详细教程)
本篇文章主要介绍了react-router4 配合webpack require.ensure 实现异步加载的示例,非常具有实用价值,需要的朋友可以参考下
实现异步加载的方法,归根结底大都是根据webpack的require.ensure来实现
第一个是自己使用require.ensure实现,
第二种 使用loader实现
今天我们说的是使用bundle-loader来实现,这样代码更优雅些。
首先需要安装bundle-loader ,具体使用npm还是yarn,就看你的包管理使用的是啥了。
下面需要一个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; } }
然后把bundle.js 引进来,同时也把需要做异步的文件引进来,但是前面需要添加
bundle-loader?lazy&name=[name]!
比如:
import Bundle from './components/bundle.js'; import ListComponent from 'bundle-loader?lazy&name=[name]!./file/List.jsx';
下面就是添加路由这块的配置:
<Route path="/list" component={List} />
以及配置output的chunkFilename
chunkFilename: '[name]-[id].[chunkhash:4].bundle.js'
chunkFilename配置好以后,异步加载进来的文件名称就会按照上面的命名方式来展示,如果不配置,就是webpack给生成的数字了。
上面的都配置好了以后,就是怎么使用bundle了,你看到route上配置的component对应的是List,所以我们需要写一个List:
const List = (props) => ( <Bundle load={ListComponent}> {(List) => <List {...props}/>} </Bundle> );
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在JavaScript中如何实现获取select下拉框中第一个值
Atas ialah kandungan terperinci react-router4 配合webpack require.ensure 实现异步加载(详细教程). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anomali Ajax mendedahkan, cara menangani pelbagai ralat memerlukan contoh kod khusus Pada 2019, pembangunan bahagian hadapan telah menjadi kedudukan penting yang tidak boleh diabaikan dalam industri Internet. Sebagai salah satu teknologi yang paling biasa digunakan dalam pembangunan bahagian hadapan, Ajax boleh merealisasikan pemuatan halaman tak segerak dan interaksi data, dan kepentingannya terbukti dengan sendirinya. Walau bagaimanapun, pelbagai ralat dan pengecualian sering dihadapi apabila menggunakan teknologi Ajax Cara menangani ralat ini adalah masalah yang mesti dihadapi oleh setiap pembangun bahagian hadapan. 1. Ralat rangkaian Apabila menggunakan Ajax untuk menghantar permintaan, ralat yang paling biasa ialah

Tajuk: Kaedah dan contoh kod untuk menyelesaikan jQuery.val() tidak berfungsi Dalam pembangunan bahagian hadapan, jQuery sering digunakan untuk mengendalikan elemen halaman. Antaranya, mendapatkan atau menetapkan nilai elemen bentuk adalah salah satu operasi biasa. Biasanya, kami menggunakan kaedah .val() jQuery untuk beroperasi pada nilai elemen bentuk. Walau bagaimanapun, kadangkala anda menghadapi situasi di mana jQuery.val() tidak berfungsi, yang mungkin menyebabkan beberapa masalah. Artikel ini akan memperkenalkan cara menangani jQuery.val(

Walaupun HTML sendiri tidak boleh membaca fail, pembacaan fail boleh dicapai melalui kaedah berikut: menggunakan JavaScript (XMLHttpRequest, fetch()); menggunakan bahasa sebelah pelayan (PHP, Node.js menggunakan perpustakaan pihak ketiga (jQuery. get() , axios, fs-extra).

Perwakilan ialah jenis rujukan selamat jenis yang digunakan untuk menghantar penunjuk kaedah antara objek untuk menyelesaikan masalah pengaturcaraan tak segerak dan pengendalian acara: Pengaturcaraan tak segerak: Perwakilan membenarkan kaedah dilaksanakan dalam urutan atau proses yang berbeza, meningkatkan responsif aplikasi. Pengendalian acara: Perwakilan memudahkan pengendalian acara, membenarkan acara seperti klik atau pergerakan tetikus dibuat dan dikendalikan.

Perkara yang mesti dimiliki oleh pembangun bahagian hadapan: kuasai mod pengoptimuman ini dan buat tapak web anda terbang! Dengan perkembangan pesat Internet, laman web telah menjadi salah satu saluran penting untuk promosi dan komunikasi korporat. Tapak web yang berprestasi baik, memuatkan pantas bukan sahaja meningkatkan pengalaman pengguna, tetapi juga menarik lebih ramai pelawat. Sebagai pembangun bahagian hadapan, adalah penting untuk menguasai beberapa corak pengoptimuman. Artikel ini akan memperkenalkan beberapa teknik pengoptimuman bahagian hadapan yang biasa digunakan untuk membantu pembangun mengoptimumkan tapak web mereka dengan lebih baik. Fail termampat Dalam pembangunan laman web, jenis fail yang biasa digunakan termasuk HTML, CSS dan J

Bagaimana untuk mengelakkan pengalihan halaman dalam WordPress? Dalam pembangunan laman web, kadangkala kami ingin melaksanakan tetapan bukan lompat halaman dalam WordPress, iaitu semasa operasi tertentu, kandungan halaman boleh dikemas kini tanpa menyegarkan keseluruhan halaman. Ini meningkatkan pengalaman pengguna dan menjadikan tapak web lebih lancar. Seterusnya, kami akan berkongsi cara melaksanakan tetapan bukan lompat halaman dalam WordPress dan memberikan contoh kod khusus. Pertama, kita boleh menggunakan Ajax untuk menghalang halaman daripada melompat. Ajax

Fungsi carian PHP sentiasa menjadi bahagian yang sangat penting dalam pembangunan laman web, kerana pengguna sering menggunakan kotak carian untuk mencari maklumat yang mereka perlukan. Walau bagaimanapun, banyak laman web mempunyai masalah seperti kecekapan rendah dan hasil carian yang tidak tepat semasa melaksanakan fungsi carian. Untuk membantu anda mengoptimumkan fungsi carian PHP, artikel ini akan berkongsi beberapa petua dan memberikan contoh kod khusus. 1. Gunakan enjin carian teks penuh, pangkalan data SQL tradisional adalah kurang cekap apabila memproses kandungan teks dalam jumlah yang besar. Oleh itu, adalah disyorkan untuk menggunakan enjin carian teks penuh, seperti Elasticsearch, Solr, dsb.

Untuk memasukkan fail JS luaran dalam HTML, gunakan teg <script> dan tentukan URL fail untuk dimuatkan. Anda juga boleh menentukan jenis, tangguh atau atribut tak segerak untuk mengawal cara pemuatan dan pelaksanaan berlaku. Lazimnya, teg <script> hendaklah diletakkan di bahagian bawah bahagian <body> untuk mengelak daripada menyekat pemaparan halaman.
