我应该在 App.js 中包含哪些组件?

Posted

技术标签:

【中文标题】我应该在 App.js 中包含哪些组件?【英文标题】:Which components should I have inside App.js? 【发布时间】:2021-07-06 07:03:35 【问题描述】:

我最近学习了react,不知道下面的代码示例是不是一个好习惯?

我将Header 中的导航栏等包裹在<header> 标记中,将Main 包裹在<main> 标记中等等。这是应该怎么做的吗?

export const App = () => 
    return (
        <div>
            <Header />
            <Main />
            <Footer />
        </div>
    )

【问题讨论】:

【参考方案1】:

这取决于您的项目,可能是某些组件,您不需要页眉或页脚。 所以你最,把页眉和页脚放在主要里面

【讨论】:

【参考方案2】:

如果你只有一个页面,这是一个好的开始,否则你必须使用 react-router-dom 并调整你的组件:页眉和页脚不会改变,只是“主要”部分......

同样在你的例子中,删除第一个 div,它没用:

export const App = () => 
  return (
    <>
      <Header />
      <Main />
      <Footer />
    </>
  )

export const App = () => 
  return (
    <React.Fragment>
      <Header />
      <Main />
      <Footer />
    </React.Fragment>
  )

如果您想查看 react-router-dom 的示例:Demo

【讨论】:

【参考方案3】:

您的问题可能是指 html 结构的语义

一旦 React 结构已经包含 body,这个 div 就不需要作为语义元素了。您可以通过替换为 Fragment

来删除它
export const App = () => 
  return (
    <>
      <Header />
      <Main />
      <Footer />
    </>
  )

如果您有兴趣,可以阅读更多关于 HTML 语义的内容:https://developer.mozilla.org/docs/Glossary/Semantics

【讨论】:

以上是关于我应该在 App.js 中包含哪些组件?的主要内容,如果未能解决你的问题,请参考以下文章

我应该在“架构”部分的Xcode构建设置中包含哪些内容

在http请求中包含了哪些信息

如何修复 Next.js 中 _app.js 中包含的 Sonarqube“重命名此文件”代码异味?

仅在一个 Vue 组件中包含外部 CSS 库

如何在邮件组件中包含 Laravel 刀片降价?

Nib 文件中包含哪些对象? [复制]