路由注册API
这些实用程序允许您管理注册的路由模式并动态编译参数化路径。
registerRoute
向中央匹配引擎手动注册路线模式。这是由 <page-route> 标签自动执行的,但可以在 JS 中强制执行。
typescript
interface RegisterRouteOptions {
exact?: boolean
meta?: Record<string, unknown>
name?: string
}
function registerRoute(
pattern: string,
options?: RegisterRouteOptions | boolean
): void- 如果将布尔值作为第二个参数传递,则将其视为
exact配置。
示例
javascript
import { registerRoute } from '@beforesemicolon/router'
registerRoute('/dashboard')
registerRoute('/admin', { exact: false })
registerRoute('/users/:userId', {
exact: true,
name: 'user-routes',
meta: { title: 'User Details', requiresAuth: true },
})isRegisteredRoute
检查具体路径名是否与任何注册的路由模式匹配。
typescript
function isRegisteredRoute(pathname: string): boolean示例
javascript
import { isRegisteredRoute } from '@beforesemicolon/router'
isRegisteredRoute('/dashboard') // true
isRegisteredRoute('/users/42') // true, when /users/:userId is registered
isRegisteredRoute('/invalid-path') // falseparsePathname
获取包含参数的路径模式,并使用当前活动位置中的值将其编译为完整的 URL 路径。
typescript
function parsePathname(pattern: string): string示例
javascript
// Browser location is: /users/42
// Current parameters: { userId: '42' }
import { parsePathname } from '@beforesemicolon/router'
const path = parsePathname('/users/:userId/details')
// Returns: "/users/42/details"