使用 Vue Router 进行路由定制和调用的示例

以下是一个使用 Vue Router 进行路由定制和调用的完整示例,假设使用 Vue 3 和 Vue Router 4。

1. 创建项目并安装依赖

首先,确保你已经安装了 Vue CLI。如果没有安装,可以通过以下命令安装:

复制代码
npm install -g @vue/cli

然后创建一个新的 Vue 项目:

复制代码
vue create router - example
cd router - example

接着安装 Vue Router:

复制代码
npm install vue - router@4

2. 定制路由(router/index.js

在项目的 router 目录下创建 index.js 文件,用于定义路由配置:

javascript

复制代码
import { createRouter, createWebHistory } from 'vue - router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';
import User from '../views/User.vue';
import UserDetail from '../views/UserDetail.vue';

const routes = [
    {
        path: '/',
        name: 'Home',
        component: Home
    },
    {
        path: '/about',
        name: 'About',
        component: About
    },
    {
        path: '/user',
        name: 'User',
        component: User,
        children: [
            {
                path: ':id',
                name: 'UserDetail',
                component: UserDetail
            }
        ]
    }
];

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

export default router;

在上述代码中:

  • 使用 createWebHistory() 选择了 HTML5 历史模式。
  • 定义了三个主要路由:HomeAboutUser
  • User 路由包含一个嵌套路由 UserDetail,通过 :id 动态参数来匹配不同用户的详情页。

3. 创建视图组件

views 目录下创建对应的视图组件:

Home.vue

vue

复制代码
<template>
    <div>
        <h1>首页</h1>
    </div>
</template>

<script setup>

</script>

<style scoped>

</style>
About.vue

vue

复制代码
<template>
    <div>
        <h1>关于</h1>
    </div>
</template>

<script setup>

</script>

<style scoped>

</style>
User.vue

vue

复制代码
<template>
    <div>
        <h1>用户列表</h1>
        <router - view></router - view>
    </div>
</template>

<script setup>

</script>

<style scoped>

</style>
UserDetail.vue

vue

复制代码
<template>
    <div>
        <h1>用户详情 - {{ $route.params.id }}</h1>
    </div>
</template>

<script setup>

</script>

<style scoped>

</style>

4. 在主应用中调用路由(main.js

main.js 中引入并使用路由:

javascript

复制代码
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

const app = createApp(App);
app.use(router);
app.mount('#app');

5. 在应用中使用路由(App.vue

App.vue 中使用路由链接和路由视图:

vue

复制代码
<template>
    <div id="app">
        <nav>
            <ul>
                <li><router - link to="/">首页</router - link></li>
                <li><router - link to="/about">关于</router - link></li>
                <li><router - link to="/user">用户</router - link></li>
            </ul>
        </nav>
        <router - view></router - view>
    </div>
</template>

<script setup>

</script>

<style>
 #app {
    font - family: Avenir, Helvetica, Arial, sans - serif;
    -webkit - font - smoothing: antialiased;
    -moz - osx - font - smoothing: grayscale;
    text - align: center;
    color: #2c3e50;
    margin - top: 60px;
}
</style>

在上述 App.vue 中:

  • 使用 <router - link> 组件创建导航链接,点击链接会触发路由切换。
  • <router - view> 组件用于渲染当前匹配路由对应的组件。

这样,一个完整的 Vue 路由定制和调用的示例就完成了。用户可以通过点击导航链接在不同视图之间切换,并且在 User 路由下,通过访问 user/:id 形式的 URL 来查看不同用户的详情。

相关推荐
小林ixn14 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架
Csvn14 小时前
🧩「找不到模块」排查全记录——Monorepo 下 TypeScript 路径别名的 5 种「不通」与根治方案
前端
腻害兔15 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
CodexDave15 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
Ai_easygo16 小时前
AI Agent开发入门——从ReAct到Tool Calling,拆解Agent的底层运行逻辑
前端·人工智能·react.js
研☆香16 小时前
分析制作html页面,如何划分页面结构
前端
腻害兔16 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程
kyriewen16 小时前
我扒了最近的前端面经——2026年面试不背八股文了,考这5样
前端·面试·ai编程
IT_陈寒17 小时前
Redis的持久化配置把我坑惨了:你以为数据安全了?
前端·人工智能·后端
小徐_233317 小时前
uni-app 项目别再从零搭了!3 个 Wot UI 起手模板怎么选?
前端·uni-app