Next js 子组件的父路由组件

2024-04-20

让我们想象一下我们有admin有几个页面的模块定制, settings, account。 这些页面中的每一个都应该有一些通用的布局。sidebar.

对于标准 React 应用程序,我将做下一步来实现应用程序的这一部分。

我会创建父路线 -admin并会创建包含一个的父组件Sidebar以及儿童路线的入口点。每个路由的子组件都有自己的组件,父组件将一起渲染侧边栏和活动子组件。 这种方法的一个非常酷的好处 -Sidebar仅渲染一次,而子项将在用户交互过程中动态变化。

一个小例子:

    const Customize = () => <div><h1>Customize</h1></div>;
    const Settings = () => <div><h1>Settings</h1></div>;
    const Account = () => <div><h1>Account</h1></div>

    const Sidebar = () => (
       <h2>Frontend</h2>
       <p><Link to="/admin">Admin</Link></p>
       <p><Link to="/admin/customize">Customize</Link></p>
       <p><Link to="/admin/settings">Settings</Link></p>
       <p><Link to="/admin/account">Account</Link></p>
    );
    
    const Admin= props => {
      return (
        <div>
          <Sidebar  />
          <Switch>
            <Route path='/user' component={Customize}/>
            <Route path='/user' component={Settings}/>
            <Route path='/user' component={Account}/>
          </Switch>
          <footer>Bottom</footer>
        </div>
      );
    }

但是对于 Next.js 来说我们该怎么做呢?根据他们的文档,我们需要使用文件结构模式。例如。在中创建一个管理页面pages文件夹并放置帐户、自定义、设置进入这个文件夹。 为了共享一些布局,我们可以使用全局_app, _文档模板,但它们对于整个应用程序来说是全局的。

如何创建应为其所有子级保留侧边栏的父级路由条目组件?

I 不想要在路线更改期间重新渲染此侧边栏,因为这对于用户体验来说不好

感谢您提供任何信息!


您可以创建Layout组件与Sidebar.

您的页面文件夹结构将如下所示:

pages
  -customize
  -settings
  -account

每一页都将被包裹起来Layout组件如:

const Customize = () => (
  <Layout>
    [page content]
  </Layout>
)

and the Layout它本身看起来像:

const Layout = ({ children }) => (
  <>
    <Sidebar />
    {children}
  </>
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Next js 子组件的父路由组件 的相关文章

  • 如何检测不渲染 .png 透明的浏览器

    我有这段代码可以根据一周中的某一天渲染图像 但在 IE6 及更低版本以及可能其他一些浏览器中 它不会呈现 png 不透明度 所以我想稍微改变一下 这样它就会检测到不渲染 alpha 透明度的浏览器 并告诉他们加载这个图像 img horar
  • 解释 javascript 中的奇怪行为

    我在推特上看到了这个 我也无法解释 定义一个onload函数按以下两种方式工作 1 JSFiddle http jsfiddle net 6rq9k 2 JSFiddle http jsfiddle net 6rq9k 1
  • 通过搜索查找下一个文本并突出显示不起作用

    当在搜索框中搜索任何文本时 它可以找到并突出显示正确的文本 但是当搜索下一个 新文本时 它无法找到下一个 新文本 再次搜索时它不起作用 我无法找到问题 这JS below JS button search click function va
  • 使用什么事件来在选择文本框中的值时显示警报消息

    我正在使用 jquery 的自动完成 api 来从数据库中获取名称 但是我想在从显示的文本框中选择名称时显示一条警报消息 我将显示一个图像以便更好地理解 当我输入 S 时 它将显示所有包含 S 的记录 所以问题是 如果我选择例如 Spars
  • Azure无法访问React Web应用程序中的env变量

    几年前我看到有一个类似的问题 但超链接答案已被微软关闭 我有一个使用 create react app 创建的 React 应用程序 它已经部署到heroku并加载一些环境变量来访问谷歌地图等 这一切对于heroku来说都工作得很好 我已经
  • JavaScript 逻辑赋值是如何工作的?

    在 javascript 中 如果我们有一些代码 例如 var a one var b q a alert b 逻辑 OR 运算符会将 a 的值分配给 b 并且警报将为 一 这仅限于作业还是我们可以在任何地方使用它 似乎空字符串被视为与未定
  • 无法读取setInterval(Hooks)中的最新状态变量[重复]

    这个问题在这里已经有答案了 我想这是因为 JS 的工作原理 但我想你不会在类中遇到这个问题 在此代码中 let open setOpen React useState false let counter setCounter React u
  • 如何在WebBrowser控件中注入Javascript?

    我试过这个 string newScript textBox1 Text HtmlElement head browserCtrl Document GetElementsByTagName head 0 HtmlElement scrip
  • 全新安装 create-next-app 后,无效的 href 传递给路由器错误

    在我的本地计算机上安装 nextjs 应用程序后 使用create next app我在控制台中收到此错误Invalid href passed to router 有谁知道如何解决它 我尝试使用to属性而不是href属性在Link组件的但
  • 以编程方式触发 highchart 散点图上某个点的单击事件

    实际上 我有一个小要求 其中有一个带有点列表和下拉列表的散点图 当我从下拉列表中选择一个项目时 应触发其相应的数据点单击 当我在图表上选择一个数据点时 必须执行一些操作 并且下拉列表应根据选择进行更新 我们有什么办法可以做到这一点吗 我尝试
  • 如何按值删除数组中的多个项目?

    我正在尝试做一个removeAll 函数 它将删除具有该特定值 而不是索引 的数组的所有元素 当我们对循环进行任何更改时 棘手的部分就出现了 索引往往会移动 使其很难像我们想要的那样工作 并且每次更改时都重新启动循环 这在大数组上效率非常低
  • 两个日期之间间隔 15 分钟 javascript

    问题 我需要将两个日期 时间戳之间的所有 15 分钟时隙 日期格式 2016 08 10 16 00 00 创建为 HH mm 格式的数组 其中分钟限制为 00 15 30 45 示例 中午 12 30 到下午 2 30 将 gt 12 3
  • 使用默认值反应路由参数

    我正在使用 React 功能组件和 React Router v5 我正在使用 useParam 函数来获取参数 当参数不可用或未定义时 如何设置参数的默认值 我的路由器代码
  • 未处理的承诺拒绝:Zone.js 检测到 ZoneAwarePromise `(window|global).Promise` 已被覆盖

    我尝试将 Angular2 快速入门代码合并到我当前的 webpack 构建中 似乎有些东西正在覆盖zone js抛出此错误的承诺 根据我见过的大多数 stackoverflow 帖子 zone js文件需要在任何可能包含承诺的文件之后加载
  • 如何在 JavaScript 中从代理对构造 UTF-16 字符?

    以下计算 Unicode 代码点的 UTF 16 代理对 戴着医用口罩的脸 https emojipedia org face with medical mask 但是如何从代理对构造字符以在字符串中使用呢 const codepoint
  • 如何使用 HTML5 Javascript Canvas 获取三个碰撞形状的交集并删除不碰撞的部分?

    我最近专门针对 KonvaJs 发布了类似的问题here https stackoverflow com questions 64603077 how can i get the intersection of three shapes c
  • 在 Javascript 中创建数组

    我对 javascript 不太熟悉 并且在用 javascript 制作 2d 或者也许我可能需要 3d 数组时遇到了一些麻烦 我目前需要收集 2 条信息 一个 ID 和一个值 因此我创建了以下内容 var myArray var id
  • 如何在 ionic2 中 pop() 之后重新加载 ion-page

    我有2页Page1 and Page2 我用过this nav pop 在Page2中 它将弹出Page2 Page1将启用 但我想刷新Page1 先感谢您 您可以将父页面与导航推送一起传递 这样您就可以将父页面作为 navParamter
  • 将一维数组转换为二维数组[重复]

    这个问题在这里已经有答案了 我正在开发一个程序 我必须将文本文件中的值读入一维数组 我已经成功获取该一维数组中的数字 m1 1 2 3 4 5 6 7 8 9 但我希望数组是 m1 1 2 3 4 5 6 7 8 9 您可以使用此代码 co
  • 如何为React hooks(useState等)做流类型注解?

    我们应该如何将 Flow 类型注释与 React hooks 一起使用 例如useState 我尝试寻找一些如何实施它们的示例 但找不到任何东西 我试过这个 const allResultsVisible setAllResultsVisi

随机推荐

  • postgresql - 将布尔列添加到表集默认值

    这是正确的 postgresql 语法 可以将列添加到表中 默认值为false ALTER TABLE users ADD priv user BIT ALTER priv user SET DEFAULT 0 Thanks ALTER T
  • 突变观察者可以监听“数据”属性的变化吗?

    所以问题是我有一个 html 元素 它在 data 属性中有一个对象 通过 jQuery ofc 设置 并且我想监听该属性的更改 我已经尝试了很多事情 比如在MutationObserverInit 对象 https developer m
  • 什么时候使用 git rm -f ?

    我正在学习 Git 无法理解在发出 git rm 命令时使用 f 标志的条件 请解释一下需要 rm f 而不是仅 rm 的情况 解释 The f如果文件与您上次签出的提交不是最新的 则用于删除该文件 这是为了防止您删除已进行更改但尚未签入的
  • Javascript,如何读取本地文件?

    我尝试从服务器读取本地文件 我已经 谷歌 这个话题有一段时间了 有些人说这是不可能的 有些人说这是可以做到的 在搜索过程中我发现了这个脚本 使用 xmlhttprequest 读取文件 如果您的 javascript 应用程序的 HTML
  • 如何在 jQuery keyup 事件中实现 debounce fn?

    计算基于用户输入 标准是使用keyup而不是change or blur 问题是代码在每次击键时都会触发 而我需要它在 500 毫秒超时后仅延迟并触发一次 我下面的例子显然不起作用 附加了小提琴 我找到了大卫 沃尔什的dbounce功能 但
  • .NET 4 自旋锁

    以下测试代码 F 未返回我期望的结果 let safeCount let n 1000000 let counter ref 0 let spinlock ref lt SpinLock false let run i0 i1 for i
  • 在 Kotlin 中使用 Room 的 @ForeignKey 作为 @Entity 参数

    我遇到了一个房间tutorial https android jlelse eu android architecture components room relationships bf473510c14a这利用了 PrimaryKey类
  • 如何将 NSDictionary 转换为自定义对象

    我有一个 json 对象 interface Order NSObject property nonatomic retain NSString OrderId property nonatomic retain NSString Titl
  • Redhat 的 RHEL8 相当于“apk add --no-cache gcc musl-dev linux-headers”

    我正在尝试使用安装在 RedHat enterprise linux 7 8 映像上的 Python 上的 https docs docker com compose gettingstarted 中的示例代码 此行出现错误 127 RUN
  • 在不阻塞的情况下“通知”处理器的正确方法是什么?

    假设我有很多东西 我必须对所有这些东西进行一些操作 如果一个元素的操作失败 我想停止整个阵列的工作 这项工作分布在多个处理器上 我想实现这一目标 同时将发送 接收的消息数量保持在最低限度 另外 如果没有必要 我不想阻止处理器 我该如何使用
  • Rails 6+、zeitwerk 自动加载器和命名空间常量

    Rails 6 默认自动加载器是 zeitwerk 这似乎比以前的方法有了很大的改进 然而 zeitwork 遵循 Rails 项目的惯例 即任何内容app 是自动加载的 不需要命名空间 这非常适合app models user rb因为你
  • VM1550 installHook.js:1860 在控制台中记录为双行

    我正在使用反应应用程序并构建一个简单的应用程序 当我使用 console log 方法在控制台上记录某些内容时 控制台上会出现第二条日志 它似乎来自第 1860 行的文件名 installHook js 我已经尝试过寻找它 但我没有找到 我
  • 如何在 HP 触摸板上使用 webOS 命令行拍照?

    在 webos 上 我正在运行 openssh 并且想使用命令行脚本拍照 我怀疑这将包括一些 luna send 命令 或者 gst launch 但我对文档没有任何运气 webos 没有任何预期的捕获工具 但我可以访问 dev video
  • 在邮件中附加两个文件

    我想创建一个 VBA 脚本 将两个文件附加到邮件中 这段代码让我可以附加一个文件 Sub openWord Dim OutApp As Object Dim OutMail As Object Set OutApp CreateObject
  • Android Facebook 应用程序注销问题

    我的应用程序使用 Facebook SDK 来发布状态更新 另外还有注销功能 我可以在应用程序第一次运行时登录 我可以在 Facebook 上成功发布状态消息 但一旦我注销 后续运行并尝试更新状态时 我会遇到来自 facebook 的错误
  • 如何编写一个函数来测试链接列表是否已排序

    我查看了其他帖子 但没有找到适合我的查询的很好的解决方案 我不想对链接列表进行实际排序 我想看看它是否已排序 我有一个 C 中的链表问题 我被要求编写一个给定链表定义的函数来查看它是否已排序 实现函数 isSorted 如果链表中的值按升序
  • 如何在WebKit中调用参数化的javascript函数?

    我正在尝试将 2 个参数传递给 javascript 函数 这段代码webview loadUrl javascript function to call 没有参数可以正常工作 但我无法使用参数 这是 javascript 连接点 func
  • 纯文本压缩算法的现状如何?

    为了纪念哈特奖 http prize hutter1 net 文本压缩的顶级算法 以及每种算法的快速描述 是什么 注意 这个问题的目的是获得压缩算法的描述 而不是压缩程序的描述 突破边界的压缩器结合了疯狂结果的算法 常见的算法包括 The
  • 没有名为 EntityManager 的持久性提供程序

    我有我的persistence xml使用相同的名称TopLink在下面META INF目录 然后 我的代码使用以下方式调用它 EntityManagerFactory emfdb Persistence createEntityManag
  • Next js 子组件的父路由组件

    让我们想象一下我们有admin有几个页面的模块定制 settings account 这些页面中的每一个都应该有一些通用的布局 sidebar 对于标准 React 应用程序 我将做下一步来实现应用程序的这一部分 我会创建父路线 admin