router路由类型和使用方法

Vue Router

  1. 路由类型

    • 静态路由 :这是最基本的路由类型,路径和组件之间的映射关系是固定的。例如,定义一个路径为/home,对应显示Home组件。
    • 动态路由 :路径中包含动态参数,这些参数可以在不同的路由导航中变化。例如,/user/:id:id就是动态参数,可以根据不同的id值显示不同用户的信息。
    • 嵌套路由 :在一个组件的基础上,再嵌套显示其他组件。比如,/user/:id/profile,在User组件中再嵌套显示Profile组件,用于展示用户的详细资料。
  2. 使用方法

    • 安装和引入 :首先通过 npm 安装 Vue Router:npm install vue - router。然后在 Vue 项目中引入并创建路由实例。

    javascript

    复制代码
    // main.js
    import { createApp } from 'vue';
    import { createRouter, createWebHistory } from 'vue - router';
    import App from './App.vue';
    import Home from './components/Home.vue';
    import User from './components/User.vue';
    
    const router = createRouter({
      history: createWebHistory(),
      routes: [
        {
          path: '/',
          name: 'Home',
          component: Home
        },
        {
          path: '/user/:id',
          name: 'User',
          component: User
        }
      ]
    });
    
    const app = createApp(App);
    app.use(router);
    app.mount('#app');
    • 导航 :在模板中使用<router - link>组件进行导航。

    html

    复制代码
    <!-- App.vue -->
    <template>
      <div id="app">
        <router - link to="/">首页</router - link>
        <router - link :to="{name: 'User', params: {id: 1}}">用户1</router - link>
        <router - view></router - view>
      </div>
    </template>
    • 获取动态参数 :在组件中可以通过$route对象获取动态参数。

    html

    复制代码
    <!-- User.vue -->
    <template>
      <div>
        <p>用户ID: {{ $route.params.id }}</p>
      </div>
    </template>
    • 嵌套路由 :在父组件的模板中定义<router - view>用于显示子路由组件。

    javascript

    复制代码
    // 定义嵌套路由
    const router = createRouter({
      history: createWebHistory(),
      routes: [
        {
          path: '/user/:id',
          name: 'User',
          component: User,
          children: [
            {
              path: 'profile',
              name: 'Profile',
              component: Profile
            }
          ]
        }
      ]
    });

    html

    复制代码
    <!-- User.vue -->
    <template>
      <div>
        <router - link :to="{name: 'Profile', params: {id: $route.params.id}}">用户资料</router - link>
        <router - view></router - view>
      </div>
    </template>

React Router

  1. 路由类型

    • 静态路由 :与 Vue Router 类似,定义固定的路径和组件映射。例如,路径/home对应Home组件。
    • 动态路由 :路径包含参数,如/user/:id:id为动态参数,根据不同的id值展示不同内容。
    • 嵌套路由 :在一个组件内嵌套展示其他组件对应的路由,如/user/:id/profile
  2. 使用方法

    • 安装和引入 :通过 npm 安装 React Router:npm install react - router - dom。然后在应用中引入相关组件。

    jsx

    复制代码
    // index.js
    import React from'react';
    import ReactDOM from'react - dom';
    import { BrowserRouter as Router } from'react - router - dom';
    import App from './App';
    
    ReactDOM.render(
      <Router>
        <App />
      </Router>,
      document.getElementById('root')
    );
    • 定义路由 :在App.js中定义路由。

    jsx

    复制代码
    import React from'react';
    import { Routes, Route } from'react - router - dom';
    import Home from './components/Home';
    import User from './components/User';
    
    const App = () => {
      return (
        <Routes>
          <Route path="/" element={<Home />}></Route>
          <Route path="/user/:id" element={<User />}></Route>
        </Routes>
      );
    };
    
    export default App;
    • 导航 :使用Link组件进行导航。

    jsx

    复制代码
    import React from'react';
    import { Link } from'react - router - dom';
    
    const Navigation = () => {
      return (
        <div>
          <Link to="/">首页</Link>
          <Link to="/user/1">用户1</Link>
        </div>
      );
    };
    
    export default Navigation;
    • 获取动态参数 :在组件中使用useParams Hook 获取动态参数。

    jsx

    复制代码
    import React from'react';
    import { useParams } from'react - router - dom';
    
    const User = () => {
      const { id } = useParams();
      return (
        <div>
          <p>用户ID: {id}</p>
        </div>
      );
    };
    
    export default User;
    • 嵌套路由 :在父组件中定义RoutesRoute展示子路由组件。

    jsx

    复制代码
    import React from'react';
    import { Routes, Route, Link } from'react - router - dom';
    import Profile from './components/Profile';
    
    const User = () => {
      return (
        <div>
          <Link to="profile">用户资料</Link>
          <Routes>
            <Route path="profile" element={<Profile />}></Route>
          </Routes>
        </div>
      );
    };
    
    export default User;
相关推荐
问天_观心11 分钟前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
阿里嘎多学长15 分钟前
2026-09-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
一个游离的指针27 分钟前
函数管道:消除深度嵌套调用
前端·javascript
柚yuzumi1 小时前
前端优化,从少触发一次开始:防抖与节流
前端·javascript
源代码•宸1 小时前
前置准备:定时微服务背景和现状
开发语言·经验分享·后端·微服务·云原生·架构·golang
2601_967338711 小时前
C#上位机开发零基础入门到精通全套视频
开发语言·c#
默_笙1 小时前
🚤 CSS 布局的"圈地运动":BFC 就是浏览器的独立领地
前端·javascript
用户938515635072 小时前
大模型记忆指南:从短时缓存到永久记忆,手把手带你吃透 LangChain Memory 管理
javascript·人工智能
小白学大数据2 小时前
超简单:用 Python 让 Excel 飞起来:用 openpyxl 把重复报表整理交给脚本
开发语言·数据库·python·excel
旧梦95272 小时前
Java SortedMap 接口详解:从入门到实战
java·开发语言