Logo文档
配置

导航配置

配置网站导航菜单和结构

NEXTDEVKIT 提供了一个灵活的导航系统,支持多级菜单、国际化和图标集成。导航配置位于 src/config/navigation.ts

📁 导航结构

导航系统支持带图标和描述的分层菜单结构:

src/config/navigation.ts
import {
  Box,
  Cpu,
  Eye,
  Globe,
  Palette,
  Rocket,
  Search,
  Shield,
} from "lucide-react";
import { useTranslations } from "next-intl";

export function getNavItems(): NavItem[] {
  const t = useTranslations("navigation");

  return [
    {
      id: 1,
      label: t("products.label"),
      subMenus: [
        {
          title: t("products.dxPlatform.title"),
          items: [
            {
              label: t("products.dxPlatform.previews.label"),
              description: t("products.dxPlatform.previews.description"),
              icon: Cpu,
              link: "/products/previews",
            },
            {
              label: t("products.dxPlatform.ai.label"),
              description: t("products.dxPlatform.ai.description"),
              icon: Search,
              link: "/products/ai",
            },
          ],
        },
        {
          title: t("products.infrastructure.title"),
          items: [
            {
              label: t("products.infrastructure.rendering.label"),
              description: t("products.infrastructure.rendering.description"),
              icon: Globe,
              link: "/products/rendering",
            },
            {
              label: t("products.infrastructure.observability.label"),
              description: t(
                "products.infrastructure.observability.description",
              ),
              icon: Eye,
              link: "/products/observability",
            },
            {
              label: t("products.infrastructure.security.label"),
              description: t("products.infrastructure.security.description"),
              icon: Shield,
              link: "/products/security",
            },
          ],
        },
        {
          title: t("products.openSource.title"),
          items: [
            {
              label: t("products.openSource.nextjs.label"),
              description: t("products.openSource.nextjs.description"),
              icon: Rocket,
              link: "/products/nextjs",
            },
            {
              label: t("products.openSource.turborepo.label"),
              description: t("products.openSource.turborepo.description"),
              icon: Box,
              link: "/products/turborepo",
            },
            {
              label: t("products.openSource.aiSdk.label"),
              description: t("products.openSource.aiSdk.description"),
              icon: Palette,
              link: "/products/ai-sdk",
            },
          ],
        },
      ],
    },
    {
      id: 2,
      label: t("solutions.label"),
      subMenus: [
        {
          title: t("solutions.useCases.title"),
          items: [
            {
              label: t("solutions.useCases.aiApps.label"),
              description: t("solutions.useCases.aiApps.description"),
              icon: Cpu,
              link: "/solutions/ai-apps",
            },
            {
              label: t("solutions.useCases.commerce.label"),
              description: t("solutions.useCases.commerce.description"),
              icon: Box,
              link: "/solutions/commerce",
            },
            {
              label: t("solutions.useCases.marketing.label"),
              description: t("solutions.useCases.marketing.description"),
              icon: Rocket,
              link: "/solutions/marketing",
            },
            {
              label: t("solutions.useCases.multiTenant.label"),
              description: t("solutions.useCases.multiTenant.description"),
              icon: Globe,
              link: "/solutions/multi-tenant",
            },
            {
              label: t("solutions.useCases.webApps.label"),
              description: t("solutions.useCases.webApps.description"),
              icon: Search,
              link: "/solutions/web-apps",
            },
          ],
        },
        {
          title: t("solutions.users.title"),
          items: [
            {
              label: t("solutions.users.platformEngineers.label"),
              description: t("solutions.users.platformEngineers.description"),
              icon: Cpu,
              link: "/solutions/platform-engineers",
            },
            {
              label: t("solutions.users.designEngineers.label"),
              description: t("solutions.users.designEngineers.description"),
              icon: Palette,
              link: "/solutions/design-engineers",
            },
          ],
        },
      ],
    },
    {
      id: 3,
      label: t("blog.label"),
      link: "/blog",
    },
    {
      id: 4,
      label: t("docs.label"),
      link: "/docs",
    },
    {
      id: 5,
      label: t("pricing.label"),
      link: "/#pricing",
    },
  ];
}

export interface NavSubItem {
  label: string;
  description: string;
  icon: React.ElementType;
  link: string;
}

export interface NavSubMenu {
  title: string;
  items: NavSubItem[];
}

export interface NavItem {
  id: number;
  label: string;
  link?: string;
  subMenus?: NavSubMenu[];
}

🔧 导航项类型

属性类型描述
idnumber导航项的唯一标识符
labelstring导航项的显示文本
linkstring (可选)简单导航项的直接链接
subMenusNavSubMenu[] (可选)子菜单组数组
属性类型描述
titlestring子菜单组的标题
itemsNavSubItem[]此子菜单组中的项目数组
属性类型描述
labelstring子菜单项的显示文本
descriptionstring子菜单项的描述文本
iconReact.ElementTypeLucide React 图标组件
linkstring子菜单项的URL或路径

🎯 导航示例

简单导航项

{
  id: 3,
  label: t("blog.label"),
  link: "/blog",
},
{
  id: 4,
  label: t("docs.label"),
  link: "/docs",
},
{
  id: 5,
  label: t("pricing.label"),
  link: "/#pricing",
}

带子菜单的多级导航

{
  id: 1,
  label: t("products.label"),
  subMenus: [
    {
      title: t("products.dxPlatform.title"),
      items: [
        {
          label: t("products.dxPlatform.previews.label"),
          description: t("products.dxPlatform.previews.description"),
          icon: Cpu,
          link: "/products/previews",
        },
        {
          label: t("products.dxPlatform.ai.label"),
          description: t("products.dxPlatform.ai.description"),
          icon: Search,
          link: "/products/ai",
        },
      ],
    },
    {
      title: t("products.infrastructure.title"),
      items: [
        {
          label: t("products.infrastructure.rendering.label"),
          description: t("products.infrastructure.rendering.description"),
          icon: Globe,
          link: "/products/rendering",
        },
        {
          label: t("products.infrastructure.observability.label"),
          description: t("products.infrastructure.observability.description"),
          icon: Eye,
          link: "/products/observability",
        },
        {
          label: t("products.infrastructure.security.label"),
          description: t("products.infrastructure.security.description"),
          icon: Shield,
          link: "/products/security",
        },
      ],
    },
  ],
}

🌍 国际化支持

所有导航项都通过翻译系统支持国际化:

// messages/en.json中的导航翻译
{
  "navigation": {
    "products": {
      "label": "产品",
      "dxPlatform": {
        "title": "DX 平台",
        // ... 更多项目
      }
    },
    "blog": {
      "label": "博客"
    },
    "docs": {
      "label": "文档"
    },
    "pricing": {
      "label": "定价"
    }
  }
}

你的 NEXTDEVKIT 导航配置现在已完全记录并准备好进行自定义!🧭