当前位置: 首页 > article >正文

VUE3 Vue Router 是官方的路由管理工具

在 Vue.js 中,Vue Router 是官方的路由管理工具,用于实现单页面应用(SPA)的路由功能。Vue Router 允许你在不同的视图(或页面)之间进行导航,同时保持单一页面的加载,不需要重新加载整个页面。

1. 安装 Vue Router

首先,确保你已经安装了 vue-router

npm install vue-router

2. 配置 Vue Router

接下来,我会使用 Vue 3 和选项式 API,同时配置 history 模式。history 模式会使 URL 看起来像传统的页面路由,例如 /home 而不是 /home#

src/router/index.js - 配置路由
import { createRouter, createWebHistory } from 'vue-router';  // Vue 3 导入
import Home from '../views/Home.vue';
import About from '../views/About.vue';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    component: About
  }
];

// 创建路由实例并配置 history 模式
const router = createRouter({
  history: createWebHistory(), // 配置 history 模式
  routes
});

export default router;
src/main.js - 配置 Vue 实例

src/main.js 中,我们需要将路由配置传入 Vue 实例中:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

createApp(App)
  .use(router)  // 使用 Vue Router
  .mount('#app');
src/App.vue - 根组件

App.vue 中使用 <router-view> 来渲染当前路由对应的组件,同时可以添加路由导航链接。

<template>
  <div id="app">
    <h1>Vue Router with History Mode</h1>
    <nav>
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
    </nav>
    <router-view></router-view> <!-- 渲染当前路由组件 -->
  </div>
</template>

<script>
export default {
  name: 'App'
};
</script>
src/views/Home.vue - 首页组件
<template>
  <div>
    <h2>Home Page</h2>
    <p>Welcome to the home page!</p>
  </div>
</template>

<script>
export default {
  name: 'Home'
};
</script>
src/views/About.vue - 关于页组件
<template>
  <div>
    <h2>About Page</h2>
    <p>This is the about page.</p>
  </div>
</template>

<script>
export default {
  name: 'About'
};
</script>

3. 路由模式说明

  • createWebHistory(): 这会启用 history 模式,URL 将不会包含 # 符号,类似于传统的多页面应用。
  • createWebHashHistory(): 如果你不配置服务器支持 history 模式,你可以使用 hash 模式,这会在 URL 中显示 # 符号,例如 /#/home

4. 路由守卫(可选)

你可以在 Vue Router 中配置全局导航守卫。例如,你可以创建一个登录守卫,确保用户登录后才能访问某些页面:

router.beforeEach((to, from, next) => {
  const isLoggedIn = false;  // 这里可以替换为你的实际登录状态判断
  if (to.name !== 'Home' && !isLoggedIn) {
    next('/'); // 如果没有登录且访问非主页,跳转到首页
  } else {
    next(); // 继续访问目标路由
  }
});

总结

  1. Vue 3 使用了 createRouter 和 createWebHistory(或 createWebHashHistory)来创建路由和配置路由模式。
  2. 使用 选项式 API 书写 Vue 组件,确保结构清晰、功能模块化。
  3. history 模式 提供了干净的 URL(无 #),适用于现代 Web 应用。

这样,你就可以在 Vue 3 中实现基于 Vue Routerhistory 模式 路由管理了。如果你有更多问题,随时告诉我!


http://www.kler.cn/a/509865.html

相关文章:

  • Vue数据响应式,reaction,ref的使用
  • 浅谈云计算14 | 云存储技术
  • MySQL 数据库 :SQL 语句规约(不得使用外键与级联,一切外键概念必须在应用层解决。)
  • Json转换类型报错问题:java.lang.Integer cannot be cast to java.math.BigDecimal
  • Matplotlib基础
  • 利用EXCEL进行XXE攻击
  • 【机器学习实战入门】基于深度学习的乳腺癌分类
  • SpringBoot的Bean-中级-作用域
  • 恒比鉴相器(CFD)初探
  • [免费]SpringBoot+Vue小区物业管理系统(高级版)【论文+源码+SQL脚本】
  • Mysql--实战篇--mybatis cache(一级缓存,二级缓存,子查询主键主查询全部,查询条件加索引,覆盖索引等)
  • 技术晋升读书笔记—华为研发
  • 搭建一个基于Spring Boot的书籍学习平台
  • 机器学习经典无监督算法——聚类K-Means算法
  • LabVIEW桥接传感器数据采集与校准程序
  • vue项目创建与运行(idea)
  • 网络安全技术之网络安全
  • 三维扫描赋能文化:蔡司3D扫描仪让木质文化遗产焕发新生-沪敖3D
  • leetcode76-最小覆盖子串
  • 在 Web 应用中集成多种地图 API 的实现与管理
  • WinForm实现无边框拖动的两种方式
  • 三台 Centos7.9 中 Docker 部署 Redis 哨兵模式
  • 每日十题八股-2025年1月18日
  • VScode侧边栏左下角,没有NPM脚本,如何打开???
  • 代码随想录刷题day11|(链表篇)206.翻转链表
  • 20250118在excel中使用公式的时候如何直接拖拽全部到最后