umi-plugin-router-plus
TypeScript icon, indicating that this package has built-in type declarations

1.8.1 • Public • Published

umi-plugin-router-plus Node CI codecov

一款 Umi 3 插件,为你带来类型友好页面参数的定义、传递与获取


安装

# npm
npm i umi-plugin-router-plus -D

# or yarn
yarn add umi-plugin-router-plus -D

# or pnpm
pnpm add umi-plugin-router-plus -D

启用方式

默认开启。

使用介绍

定义页面参数

在页面文件内定义 Params 类型,并将之导出即可:

// src/pages/test.tsx

export interface Params {
  id: number
  enabled?: boolean
  gender: 'male' | 'female'
  name: string
  tags?: string[]
}

获取页面参数

在页面文件内定义好页面参数后,只需在页面组件内使用 usePageParams 即可获取:

// src/pages/test.tsx
import React from 'react'
import { usePageParams } from 'umi'

export interface Params {
  id: number
  enabled?: boolean
  gender: 'male' | 'female'
  name: string
  tags?: string[]
}

export default function () {
  const {
    id,
    enabled = false, // 指定默认值
    gender,
    name,
    tags = [],
  } = usePageParams('Test')

  return <div>id is: {id}</div>
}

传递页面参数

见下:API 列表

API 列表

navigateTo(pageName, params)

import { navigateTo } from 'umi'

navigateTo('Index')
navigateTo('User', { id: 2 })

保留当前页面,跳转至某个页面,和 history.push 效果一致。

redirectTo(pageName, params)

import { redirectTo } from 'umi'

redirectTo('Index')
redirectTo('User', { id: 2 })

关闭当前页面,跳转至某个页面,和 history.replace 效果一致。

navigateBack(delta)

import { navigateBack } from 'umi'

navigateBack()
navigateBack(2)

关闭当前页面,返回上一页面或多级页面,和 history.goBack 效果一致。

navigateForward(delta)

import { navigateForward } from 'umi'

navigateForward()
navigateForward(2)

保留当前页面,前进到下一页面或多级页面,和 history.goForward 效果一致。

usePageName()

import { usePageName } from 'umi'

const pageName = usePageName()

获取当前页面的名称。

usePageParams(pageName)

import { usePageParams } from 'umi'

const { id } = usePageParams('User')

获取传给页面的参数,会继承所有父 layout 页面定义的参数

usePageQuery()

import { usePageQuery } from 'umi'

const { source } = usePageQuery<{
  source: string
}>()

获取传给页面的 query。

useQuery()

usePageQuery,不再推荐使用,未来版本会被移除。

页面名称

页面名称会根据路由的 path 自动生成,如果程序没有提示你页面名称重复,大可不必深究。

比如,页面路径 /user/detail 生成的页面名称为 UserDetail

许可

Jay Fong (c) MIT

Package Sidebar

Install

npm i umi-plugin-router-plus

Weekly Downloads

0

Version

1.8.1

License

MIT

Unpacked Size

39.9 kB

Total Files

14

Last publish

Collaborators

  • funch