Reactjs 反应路由器-导航到同一路由会导致重新渲染
嗨,我不确定这是一个期望的行为还是一个bug 这是一个空的create react应用程序示例,带有Reactjs 反应路由器-导航到同一路由会导致重新渲染,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,嗨,我不确定这是一个期望的行为还是一个bug 这是一个空的create react应用程序示例,带有react路由器dom 版本: “反应”:“^16.13.1” “react dom”:“^16.13.1” “反应路由器dom”:“^5.2.0” “反应脚本”:“3.4.1” 开关下有两条线路部件: /-用于主组件 /触点-用于触点组件 从“React”导入React; 从“react Router dom”导入{Switch,Route,BrowserRouter as Router,L
react路由器dom
版本:
- “反应”:“^16.13.1”
- “react dom”:“^16.13.1”
- “反应路由器dom”:“^5.2.0”
- “反应脚本”:“3.4.1”
开关下有两条线路
部件:
从“React”导入React;
从“react Router dom”导入{Switch,Route,BrowserRouter as Router,Link};
类Home扩展了React.PureComponent{
render(){
控制台日志(“主渲染”);
返回主页;
}
}
//const homemo=React.memo(主页);
//const Home=()=>主页;
const Contacts=()=>Contacts;
常量头=()=>{
console.log(“标题渲染”);
返回(
家
联络
);
};
函数App(){
console.log(“应用程序渲染”);
返回(
);
}
导出默认应用程序;
可用小提琴
多次单击“主页”链接会显示一条主页呈现的消息
我的猜测是,如果我们已经在同一条路线上,它将不会尝试重新渲染?我提出了一个相关的Github票证
一位社区成员告诉我这是设计的
此设计决策的原因仍然未知。您在何处以及如何看到主页链接上的点击,页面正在重新呈现?@AskMen请查看浏览器选项卡左下角的控制台日志
import React from "react";
import { Switch, Route, BrowserRouter as Router, Link } from "react-router-dom";
class Home extends React.PureComponent {
render() {
console.log("Home rendered");
return <h1>Homepage</h1>;
}
}
//const HomeMemo = React.memo(Home);
//const Home = () => <h1>Homepage</h1>;
const Contacts = () => <h1>Contacts</h1>;
const Header = () => {
console.log("Header Render");
return (
<header className="App-header">
<Link to="/">Home</Link>
<br />
<Link to="/contacts">Contacts</Link>
</header>
);
};
function App() {
console.log("App Render");
return (
<div className="App">
<Router>
<Header />
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/contacts" component={Contacts} />
</Switch>
</Router>
</div>
);
}
export default App;