博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react-router v4 按需加载的配置方法
阅读量:5138 次
发布时间:2019-06-13

本文共 2216 字,大约阅读时间需要 7 分钟。

在react项目开发中,当访问默认页面时会一次性请求所有的js资源,这会大大影响页面的加载速度和用户体验。所以添加按需加载功能是必要的,以下是配置按需加载的方法:

安装bundle-loader

npm install --save-dev bundle-loader

定义Bundle.js

import React, { Component } from 'react';    export default class Bundle extends React.Component {        constructor(props) {            super(props);            this.state = {                // short for "module" but that's a keyword in js, so "mod"                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({                    // handle both es imports and cjs                    mod: mod.default ? mod.default : mod                })            })        }        render() {            if (!this.state.mod)                return false            return this.props.children(this.state.mod)        }    }

app.jsx配置

import React from 'react';    import ReactDOM from 'react-dom';    import { HashRouter, Route } from 'react-router-dom';    import * as routePaths from './js/constants/routePaths';    import Bundle from './js/constants/Bundle.js';    //默认打开页面直接引入    import Index from './js/pages/Index';    //其他页面异步引入    import CardContainer from 'bundle-loader?lazy&name=app-[name]!./js/pages/Card';    import './assets/css/index.scss';    const Card = () => (        
{(Card) =>
}
) ReactDOM.render((
), document.getElementById('app') );

webpack.config.js 修改

webpackConfig.output = {        path: path.resolve(__dirname, 'build/' + config.ftpTarget),        publicPath: config.publicPath + '/',        filename: 'js/[name].js',        chunkFilename: 'js/[id].js'    }

这样就可以实现页面js资源按需加载了,打包后的文件命名可以根据自己需要设置。

react-router v4 中文官网:http://reacttraining.cn/web/guides/quick-start

转载于:https://www.cnblogs.com/sunLemon/p/9090031.html

你可能感兴趣的文章
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
php match_model的简单使用
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
STM32单片机使用注意事项
查看>>
移动开发平台-应用之星app制作教程
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
如何在maven工程中加载oracle驱动
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>