写react中时总会跟vue对比,vue中有keep-alive做缓存页面,也有相应的api激活(activated)和停用(deactivated)。
react中我们用react-router-dom做路由时怎么缓存页面呢?
我想的是在Route中一个exact属性,当exact为false时下
< Route path="/login" component={A} />
< Route exact path="/login/:id" component={B} />
如果进入B页面时A页面也会显示,只要我页面在B页面时隐藏A页面,在返回A页面时在显示就可以了
重点就在componentWillReceiveProps函数中进行显示隐藏
import * as React from ‘react’;
import{ Route } from ‘react-router-dom’;
interface RoutesProps {
component:any,
path:any,
[random:string]:any
}
interface RoutesState {
[random: string]: any;
}
export default class Routes extends React.PureComponent<RoutesProps,RoutesState>{
constructor(props:any) {
super(props);
this.state={
isShow:true
}
}
componentWill