Skip to content

快速上手 ​

本节目标:在 React 18+ 项目中快速搭建一个可运行的 @vureact/router 应用,并覆盖最核心的导航流程。

最小可运行示例 ​

1. 安装 ​

bash
npm install @vureact/router
# 或
yarn add @vureact/router
# 或
pnpm add @vureact/router

对等依赖 ​

  • React >= 18.2.0
  • React DOM >= 18.2.0
  • React Router DOM >= 7.9.0

2. 创建路由 ​

tsx
import { createRouter, createWebHashHistory, RouterView, type RouteRecordRaw } from '@vureact/router';

const routes: RouteRecordRaw[] = [
  {
    path: '/',
    component: <RouterView />,
    children: [
      { path: '', redirect: '/home' },
      { path: 'home', name: 'home', component: <div>Home Page</div> },
      { path: 'user/:id', name: 'user', component: <div>User Detail</div> },
      { path: '*', name: 'not-found', component: <div>404</div> },
    ],
  },
];

export const router = createRouter({
  routes,
  history: createWebHashHistory(),
});

3. 挂载应用 ​

tsx
import ReactDOM from 'react-dom/client';
import { RouterLink, RouterView } from '@vureact/router';
import { router } from './router';

function App() {
  return (
    <div>
      <nav>
        <RouterLink to="/home">Home</RouterLink>
        <RouterLink to={{ name: 'user', params: { id: '42' } }}>User 42</RouterLink>
      </nav>
      <RouterView />
    </div>
  );
}

ReactDOM.createRoot(document.getElementById('root')!).render(
  <router.RouterProvider>
    <App />
  </router.RouterProvider>,
);

关键 API 解释 ​

  • createWebHashHistory() / createWebHistory() / createMemoryHistory()
    • 三种历史模式工厂,传给 createRouter({ history })。
  • redirect
    • RouteRecordRaw 中支持字符串、对象、函数三种重定向表达。
  • RouterLink 的 to
    • 可为字符串,或 { path/name, params, query, hash, state } 对象。

常见坑 ​

  • 使用 { name, params } 时必须保证对应命名路由存在,否则会抛错。
  • 同时传入 path 和 params 时,params 不生效(以 path 为准)。
  • memoryHistory 适合测试/非浏览器环境,浏览器页面建议使用 hash 或 history。

Vue Router 对照 ​

下一步建议阅读:基础路由。

Released under the MIT License