小白视角学antd umi(二) - 约定式路由

本文详细介绍了umi约定式路由的使用,包括基本使用、动态路由、嵌套路由、查看路由表和添加404页面。通过示例代码演示了如何创建、配置和调试路由,强调了开发过程中需要注意的排除规则和动态参数。最后提到umi 3.x版本可能存在的一些不稳定问题,期待官方后续改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章主要介绍一下umi约定式路由的使用。主要参考umi官方文档:https://umijs.org/zh-CN/docs/convention-routing

一、 基本使用

约定式路由是以文件系统为基础的路由。umi会分析src/pages目录,并根据目录文件结构自动生成对应的路由。如果你用过Jekyll或者Hugo之类的网页生成器,那就很容易理解约定式路由。

下面我们就来尝试一下。首先先看一下现在src/pages的目录结构(上一篇文章的脚手架创建的项目):

src
└── pages
    ├── index.less
    └── index.tsx

我们来添加一个新的页面page1:

src
└── pages
    ├── index.less
    └── index.tsx
    └── page1.js

为了简便起见,这里使用了javascript,当然你也可以使用typescript。页面代码:

//page1.js
import React from 'react'

export default function Page1(props){
   
  return(
    <div>
      This is page 1.
    </div>
  )
}

运行项目:

yarn start

打开浏览器 http://localhost:8000/page1 预览一下:

empty page

怎么是空白页面?因为umi约定只有当配置文件中没有routes这一项时才会启用约定式路由,所以我们还需要注释掉配置文件中的route配置:

//.umirc.ts
import {
    defineConfig } from 'umi';

export default defineConfig({
   
  nodeModulesTransform: {
   
    type: 'none',
  },
  // routes: [
  //   { path: '/', component: '@/pages/index' },
  // ],
});

此时再预览一下,页面可以正常显示了。
page 1

当然,开发时为了更好的组织文件,我们会把有些非页面的文件或文件夹一起放到pages路径里。Umi提供了几种排除规则,满足以下规则的文件不会被注册为约定式路由:

  • ._ 开头的文件或目录
  • d.ts 结尾的类型定义文件
  • test.tsspec.tse2e.ts 结尾的测试文件(适用于 .js.jsx.tsx 文件)
  • componentscomponent 目录
  • utilsutil 目录
  • 不是 .js.jsx.ts.tsx 文件
  • 文件内容不包含 JSX 元素

二、 动态路由

Umi约定以[]包裹的文件或文件夹为动态路由。我们直接来试一下,将刚刚创建的page1.js改成[page].js:

src
└── pages
    ├── index.less
    └── index.tsx
    └── [page].js
//[page].js
import React from 'react'

export default function Page(props){
   

  return(
    <div>
      This is page {
   props
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值