react-router4 实现按需加载并利用withRouter传递props
来源:互联网 发布:联通数据关闭还走流量 编辑:程序博客网 时间:2024/05/16 17:46
bundle.jsx
import React, {Component} from 'react'export default class Bundle extends Component { 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() { if (!this.state.mod) return false return this.props.children(this.state.mod) }}
// app.jsx// bundle模型用来异步加载组件import Bundle from './bundle.jsx';// 引入单个页面(包括嵌套的子页面)// 同步引入import Index from './app/index.js';// 异步引入import ListContainer from 'bundle-loader?lazy&name=app-[List]!../pages/List';const List = () => ( <Bundle load={ListContainer}> {(List) => <List />} </Bundle>)// ... <HashRouter> <Router basename="/"> <div> <Route exact path="/" component={Index} /> <Route path="/list" component={List} /> </div> </Router> </HashRouter>// ...
webpack.config.js-output
chunkFilename: '[name]-[id].[chunkhash:8].bundle.js'
问题
无法传递this.props,如this.props.params,location
解决
react-router
自带的withRouter
可轻松解决:
import { withRouter } from 'react-router'class Test extends Component { ... render(){ const { match, location, history } = this.props ... }}export default withRouter(Test)//export default withRouter(connect(...)(Test))//with redux
参考 https://juejin.im/post/58f9717e44d9040069d06cd6
1 0
- react-router4 实现按需加载并利用withRouter传递props
- react-router4 实现按需加载
- React传递Props
- React传递props
- react数据传递----props
- React-router4
- react-router4
- react——传递 Props
- 续-React数据传递-props
- react-router withRouter
- React Router--React Router4
- 浅谈React的props验证、默认值、传递
- React.js refs 和props传递数据
- react-router4 第一篇
- react router4.0初识
- react-router4的坑
- React props
- React Props
- 指针
- Javascript中对象深拷贝的应用
- Java 概述
- 联通sgip1.2接入笔记
- PAT1014. 福尔摩斯的约会 (20)
- react-router4 实现按需加载并利用withRouter传递props
- 欧拉筛法
- C++抽象编程——面向对象(1)——类的分级和继承
- CloudCompare插件编写三(算法实现)
- 进程标识(pid)
- 网络常用排错工具
- TCP和UDP的区别
- fork和execl
- linux系统编程知识(二)