最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react-router4 配合webpack require.ensure 實現(xiàn)異步加載的示例

 更新時間:2018年01月18日 13:44:37   作者:wyysf  
本篇文章主要介紹了react-router4 配合webpack require.ensure 實現(xiàn)異步加載的示例,非常具有實用價值,需要的朋友可以參考下

實現(xiàn)異步加載的方法,歸根結(jié)底大都是根據(jù)webpack的require.ensure來實現(xiàn)

第一個是自己使用require.ensure實現(xiàn),

第二種 使用loader實現(xiàn)

今天我們說的是使用bundle-loader來實現(xiàn),這樣代碼更優(yōu)雅些。

首先需要安裝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給生成的數(shù)字了。

上面的都配置好了以后,就是怎么使用bundle了,你看到route上配置的component對應(yīng)的是List,所以我們需要寫一個List:

const List = (props) => (
  <Bundle load={ListComponent}>
    {(List) => <List {...props}/>}
  </Bundle>
);

到這里基本上就配置完了,這個時候你本地重啟服務(wù),然后點擊對應(yīng)的路由,就會看到異步記載的js:List-0.094e.bundle.js

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • react如何使用useRef模仿抖音標題里面添加標簽內(nèi)容

    react如何使用useRef模仿抖音標題里面添加標簽內(nèi)容

    本文介紹了如何模仿抖音發(fā)布頁面,使用div元素作為輸入框,并利用CSS樣式和JavaScript動態(tài)操作DOM,實現(xiàn)類似于input輸入框的功能,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • 詳解React Hooks是如何工作的

    詳解React Hooks是如何工作的

    React Hooks是在React 16.8版本新增的特性,在我看了React官網(wǎng)和一些博客對React Hook的講解后還是覺得沒有g(shù)et到本質(zhì)。本篇博客通過手動實現(xiàn)useState()來了解Hook的原理和本質(zhì)。閱讀此篇博客的前提是你要知道一些 React Hooks的基本用法和使用規(guī)則,不然會看得云里霧里。
    2021-05-05
  • React項目中hook實現(xiàn)展示對話框功能

    React項目中hook實現(xiàn)展示對話框功能

    Modal(模態(tài)框)是 web 開發(fā)中十分常見的組件,即從頁面中彈出的對話框,下面這篇文章主要給大家介紹了關(guān)于React項目中hook實現(xiàn)展示對話框功能的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • react中的axios模塊你了解嗎

    react中的axios模塊你了解嗎

    這篇文章主要為大家詳細介紹了react中的axios模塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • React中props使用教程

    React中props使用教程

    props是組件(包括函數(shù)組件和class組件)間的內(nèi)置屬性,用其可以傳遞數(shù)據(jù)給子節(jié)點,props用來傳遞參數(shù)。組件實例化過程中,你可以向其中傳遞一個參數(shù),這個參數(shù)會在實例化過程中被引用
    2022-09-09
  • antd踩坑之javascriptEnabled配置方式

    antd踩坑之javascriptEnabled配置方式

    這篇文章主要介紹了antd踩坑之javascriptEnabled配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 三分鐘搞懂react-hooks及實例代碼

    三分鐘搞懂react-hooks及實例代碼

    React?Hooks是今年最勁爆的新特性真的毫不夸張。如果你也對react感興趣,或者正在使用react進行項目開發(fā),請抽出點時間閱讀下此文
    2022-03-03
  • 詳解使用create-react-app添加css modules、sasss和antd

    詳解使用create-react-app添加css modules、sasss和antd

    這篇文章主要介紹了詳解使用create-react-app添加css modules、sasss和antd,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • react批量引入svg圖標的方法

    react批量引入svg圖標的方法

    這篇文章主要介紹了react批量引入svg圖標的方法,在批量引入之前,我們需要安裝一個包并配置到typescript.json文件中,需要的朋友可以參考下
    2024-03-03
  • sass在react中的基本使用(實例詳解)

    sass在react中的基本使用(實例詳解)

    這篇文章主要介紹了sass在react中的基本使用,主要包括安裝sass和編寫APP.tsx中的基本dom,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09

最新評論

光泽县| 开原市| 仁怀市| 都兰县| 阆中市| 宜兰县| 鲁山县| 陇西县| 贵定县| 黔西| 汉沽区| 钦州市| 军事| 通州市| 卓尼县| 水富县| 缙云县| 理塘县| 三亚市| 牡丹江市| 迭部县| 吕梁市| 许昌县| SHOW| 通辽市| 汉中市| 同心县| 永春县| 宁明县| 本溪市| 稷山县| 郑州市| 阿拉尔市| 乌苏市| 宁都县| 嘉定区| 监利县| 酒泉市| 许昌市| 郸城县| 湘潭市|