我刚刚开始学习React,我正在try 制作一个SPA博客,它有一个全球定位的固定标题.

import React from 'react';
import { render } from 'react-dom';
// import other components here

    render((
      <Router history={browserHistory}>
        <Route path="/" component={Home} />
        <Route path="/About" component={About} />
        <Route path="/Contact" component={Contact} />
        <Route path="*" component={Error} />
      </Router>
    ), document.getElementById('app'));

所以,每个路由都有相同的头,从我的Angular 背景来看,我会在ui视图外使用头.

在每个单独的页面组件中导入页眉组件是一种很好的做法,或者我可以在我的<Router><myHeader/><otherRoutes/></Router>页上添加页眉组件吗?

Update:

我想用这样的方法:

Routes组件,我在其中定义我的路由:

class Routes extends React.Component {
    render() {
        return (
            <Router history={browserHistory}>
                <IndexRoute component={Home} />
                <Route path="/studio" component={Studio} />
                <Route path="/work" component={Work} />
                <Route path="*" component={Home} />
            </Router>
        )
    }
}

然后是主索引.js文件我想呈现如下内容:

import Routes from './components/Routes';

render((
   <div>
      <div className="header">header</div>
      <Routes />
   </div>
), document.getElementById('app'));

有人能给我解释一下吗?谢谢

推荐答案

根据我的经验,为你的页面定义一个布局组件是很好的,比如...

布局组件

render() {
    return(
       <div>
          <Header />
             { this.props.children }
             /* anything else you want to appear on every page that uses this layout */
          <Footer />
       </div>
    );
}

然后将布局导入每个页面组件...

联系人页面组件

render() {
    return (
        <Layout>
           <ContactComponent />
           /* put all you want on this page within the layout component */
        </Layout>
    );
}

你可以让你的路由保持不变,你的路由会呈现联系人页面,然后呈现你的标题.

通过这种方式,你可以控制多个页面上重复的内容,如果你需要一个或两个稍微不同的页面,你可以创建另一个布局并使用它.

Reactjs相关问答推荐

自动化幻灯片放映以防止React中重复过多的正确方法是什么

为什么我无法访问窗口事件处理程序中的状态?

Firebase删除UserWithEmail AndPassword仅创建匿名用户

无法使用#13;或br将新行设置为文本区域'"&"<>

Reaction-路由v6动态路径RegExp

Next.js:提交表单时状态尚未就绪

同一文件中前端和后端的Nginx配置

Mantine DatePickerInput呈现错误

React Context API 在 Next.js 中更改路由时获取默认数据

从 redux 调用UPDATE_DATA操作时状态变得未定义

React中useAuthenticator的authState在成功登录后仍保持未认证状态 - 需要强制刷新

如何通过 React JS 中的映射将新元素添加到对象数据数组中

需要在窗口调整大小时更新 React 组件

antd 找不到 comments

Cypress - 替换 React 项目中的变量

如何使用 cypress 获取 MUI TextField 的输入值?

React如何在用户登录后等待当前用户数据被获取

在视图列表上react 本机无限循环的反弹动画?

如何用实际的br标签替换axios响应中的br标签?

哪个 PrivateRouter 实现更好:高阶组件还是替换?