【发布时间】:2020-11-21 13:50:04
【问题描述】:
您好,我不确定这是期望的行为还是错误。
这是一个空的 create-react-app 示例,带有 react-router-dom
版本:
- “反应”:“^16.13.1”,
- "react-dom": "^16.13.1",
- "react-router-dom": "^5.2.0",
- “反应脚本”:“3.4.1”
Switch 组件下有两条路由:
- / - 用于 Home 组件
- /contacts - 用于联系人组件
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;
小提琴可用here
多次单击主页链接会生成Home rendered 消息。
我的假设是,如果我们已经在同一条路线上,它就不会尝试重新渲染?
【问题讨论】:
-
您在哪里以及如何看到点击主页链接,页面正在重新呈现?
-
@AskMen 查看浏览器选项卡左下方的控制台日志
标签: reactjs react-router react-router-dom