首页 > 其他分享 >从零开始NEXT.js(五)——路由组和平行路由

从零开始NEXT.js(五)——路由组和平行路由

时间:2024-07-23 16:58:02浏览次数:10  
标签:profile NEXT 从零开始 tsx import js page 路由 页面

从零开始NEXT.s(四)——服务器组件

上一章我们介绍了服务器组件的内部逻辑,这一章我们重点来讲一下NEXT,js中的页面路由。

路由组

在我们的app文件夹下,我们可以添加一个又一个文件夹去建立我们的页面路由,当页面过多时找起来就会很复杂,用路由组的形式可以很便捷的收纳我们的路由页面。

假设我们的项目结构如下:

/app
  /about
    page.tsx
  /perference
    page.tsx
  /product
    page.tsx   
  page.tsx
  globals.css

在app下创建文件夹(userprofile),把about,perference拖入(userprofile)中

我们再访问 http://localhost:3000/about 和 http://localhost:3000/peerference仍然可以访问,没有增加我们路由的长度。

平行路由

平行路由可以让我们有条件的渲染页面,例如有些内容我只想管理员可以查看,我们可以这样设置:

我们新建一个文件夹名为@profile,在其中添加一个page.tsx

export default function profile(){
    return(
        <div>
            <h1>admin profile</h1>
        </div>
    )
}

 在layout文件下修改代码

import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import Link from "next/link";

const inter = Inter({ subsets: ["latin"] });

export const metadata: Metadata = {
  title: "Create Next App",
  description: "Generated by create next app",
};

export default function RootLayout({
  children,
  profile
}: Readonly<{
  children: React.ReactNode;
  profile:React.ReactNode;
}>) { 
  const isAdmin=true
  return (
    <html lang="en">
      <body className={inter.className}>
        <nav>
          <ul className="flex gap-2 justify-between px-4 bg-blue-700">
            <li>
              <Link href={'/'}>Home</Link>
            </li>
            <Link href={'/about'}>About</Link>
          </ul>
        </nav>
        {children}
        {isAdmin && profile}
        </body>
    </html>
  );
}

在layout中我们添加了刚刚新建的profile,然后设置他是管理员时显示

效果如下:

标签:profile,NEXT,从零开始,tsx,import,js,page,路由,页面
From: https://blog.csdn.net/Arthus_wyk/article/details/140639638

相关文章

  • Three.js针对.gltf类型建模文件封装记录
    记录Three.js代码组件封装片段,支持定制旋转位置大小配置three.js官方连接:Three.js中文网3D模型文件下载地址:3D模型可视化编辑器完整效果图片封装文件位置:utils文件夹下 依赖安装:"dependencies":{"three":"^0.165.0","three-obj-mtl-loader":"^1.......
  • Windows NodeJS 版本管理工具 Fnm 快速使用
    WindowsNode.JS版本管理工具Fnm快速使用简介:FastandsimpleNode.jsversionmanager,builtinRust(快速而简单的Node.js版本管理器,用Rust构建)目录Windows下载与安装Windows使用-修改默认安装根目录Windows使用-配置CMD或PowerShellWindows使用-安装Node......
  • 易优CMS通过JS判断会员是否登录
    如下所示:<scripttype="text/javascript">functionlayerLogin(gourl){if(0<ey_getCookie('users_id')){alert('已经登录');}else{alert('请登录!');}}fu......
  • 如何将 json 文件的文件名写入同一个 json 文件的键值对?
    我在每个图像的json文件中存储了注释,但这些文件没有图像的文件名作为其中的键,因此我想输入这些json文件的文件名作为其中的字段。eg:|||应包含文件名字段。Train1.jpeg.json我正在尝试使这些文件对coco格式有效。{"filename":"train1.jpeg""d......
  • c/c++ jsoncpp的基本使用
    一、概述jsoncpp官网作用:在c++中可以方便的组装及解析json格式的数据。二、代码示例voidMyJsonCpp::toJsonStr(){Json::ValuejsonValue;jsonValue["username"]="luoluoyang";jsonValue["password"]="123456";jsonValue["ag......
  • c 使用cJSON生成及解析json类型数据
    一、概述cJSON官网作用:可以在c程序中方便的进行json字符串的解析及生成 二、代码示例//组装一个json串voidCJsonTest::valueToJsonObject(){cJSON*root,*fmt;char*out;root=cJSON_CreateObject();//创建一个obj(申请了堆内存记得释放)......
  • 从零开始构建你的第一个Python Web应用
    在本文中,我们将带领你从零开始构建一个简单的PythonWeb应用。不需要任何先验知识,我们会一步步地指导你完成设置、框架选择、代码编写到部署的整个过程。无论你是Web开发新手还是希望扩展技能的老手,这篇文章都将为你提供一个实践操作的起点。一、前言随着互联网技术的飞速......
  • vuejs设计与实现1-3
    Vue1.权衡的艺术2.框架设计的核心要素3.vue.js3设计思路1.权衡的艺术框架设计:在保持可维护性的同时让性能损失最小化;命令式VS声明式从范式上来看,视图层框架分为命令式和声明式。命令式框架:关注过程,性能优;声明式框架:关注结果,可维护性好框架设计需要考虑可......
  • 从零开始学数据结构系列之第四章《prim算法(普里姆算法)总代码》
    文章目录回顾初始化寻找最小权值算法主体总代码往期回顾回顾我们用这张图来进行算法讲解初始化/**vex-存储顶点*weight-存储权值*/typedefstructEdge{charvex;intweight;}Edge;/**开辟数组大小得空间,大小具体为vexNum的个数*......
  • 处理json格式的数据
    如何处理json格式的数据1.主要处理三类数据带有json格式的数据形式:[{key:value}]提取:文字、图片链接、文档链接[{"content":"点击“产品开发库”,右上角“展开筛选”,按条件筛选流程信息。","type":"text"},{"content":"\n","type":"text"},{"......