大家晚上好。我是ReactJS的新手,我不明白如何在每页加载不同的内容的同时有一些固定的部分,比如标题(点击链接后(。
我已经创建了三个组件,并将它们呈现到主页上。当我点击about链接时,我想加载Header&仅限Learn.js组件。我该怎么办?
非常感谢!
index.js
import React from "react";
import ReactDOM from "react-dom";
import Header from './components/header'
import MiddleMan from './components/middleman'
import BottomHero from './components/bottomhero'
import './web.css';
function App(){
return (
<React.Fragment>
<Header />
<MiddleMan />
<BottomHero />
</React.Fragment>
);
}
ReactDOM.render(<App />, document.querySelector(".container"));
中间人.js
import React, { Component } from 'react';
import Learn from './learn';
import {
BrowserRouter as Router,
Routes,
Route,
Link,
} from "react-router-dom";
class MiddleMan extends React.Component {
render() {
return (
<div className="middle JV--row JV--a--center JV--spacer">
<Router>
<ul>
<li><Link to="about">ABOUT ME</Link></li>
<li><Link to="project">PROJECTS</Link></li>
<li><Link to="exp">PR. LANGUAGES / TECHNOLOGIES</Link></li>
</ul>
<Routes>
<Route path="about" element={<Learn/>}></Route>
</Routes>
</Router>
</div>
);
}
}
export default MiddleMan;
learn.js
import React from 'react';
import Header from './header'
class Learn extends React.Component {
render(){
return (
<h2>BBBBBBBBBBBBBBBBBB</h2>
);
}
}
export default Learn;
考虑到react-router-dom
的使用方式,您的应用程序结构有点奇怪。我建议你阅读他们的文档!
现在,为了给出更具体的答案,您应该将App
组件封装在BrowserRouter
中。您的路由可能在Switch组件内,为了实现您希望实现的Header
行为,我建议您检查此问题的答案。