Vue 词条目录
前端Wiki/Vue/实战/路由与状态

Vue Router 路由

Vue Router 是官方路由库:URL 与组件一一对应,路径变化时切换渲染的组件而不整页刷新(SPA)。核心三步:定义路由表(path ↔ component)、创建 router 实例、以 <router-view> 作为出口、<router-link> 做导航。

动态路由用 :参数 匹配(/user/:id),组件内 useRoute() 取参数。嵌套路由用 children 配置 + 子级 router-view。导航用 router.push("/about") 或 router.back()。

  • 路由表 routes:[{ path, component }],router-view 是出口
  • router-link to="/x" 渲染为 a 标签,切换不整页刷新
  • 动态路由 :id + useRoute().params;嵌套用 children
HTML
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Vue Router 路由</title>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script src="https://unpkg.com/vue-router@4/dist/vue-router.global.js"></script>
</head>
<body>
  <div id="app">
    <router-link to="/">首页</router-link>
    <router-link to="/user/42">用户42</router-link>
    <!-- 路由出口:匹配的组件渲染在这里 -->
    <router-view></router-view>
  </div>

<script>
  const { createApp, h } = Vue;
  const { createRouter, createWebHistory, useRoute } = VueRouter;

  // 简单组件:render 函数写法(无 SFC 时的选择)
  const Home = { render: () => h('h2', '首页内容') };
  const User = {
    setup() {
      const route = useRoute();
      return () => h('h2', '用户 ID:' + route.params.id);
    }
  };

  const router = createRouter({
    history: createWebHistory(),
    routes: [
      { path: '/', component: Home },
      { path: '/user/:id', component: User }
    ]
  });

  createApp({}).use(router).mount('#app');
</script>
</body>
</html>
本节要点路由三要素:routes 路由表 + router-view 出口 + router-link 导航;:id 动态参数用 useRoute 取。