前端框架使用vue-cli( 第二层:工程配置层--路由页面配置)

前言:

前面介绍app.vue的时候已经介绍到了。

javascript 复制代码
<template>
  <div id="app">
    <router-view v-if="isRouterAlive"/>
  </div>
</template>

我们看到了这个:

这个其实是vue-router的语法

这个就要涉及到vue-router这个技术栈

这篇文章的内容主要是两个点

1.vue-router技术栈开发人员应该了解的信息领域

2.vue-cli的基本路由核心应该配置的基本东西

1.vue-router技术栈开发人员应该了解的信息领域

1.vue-router如何配置到vue-cli里面去

2.vue-router的知识体系是什么

3.vue-router提供的代码使用

2.vue-cli的基本路由核心应该配置的基本东西

你看到的 <router-view v-if="isRouterAlive"/> 确实是 Vue Router 的核心。它就像一个"占位符",告诉 Vue 把当前 URL 对应的组件内容渲染在这里。v-if="isRouterAlive" 通常用于实现强制刷新视图的效果。

你总结的两个方向很清晰。以下我根据这两个方向,结合你贴出的代码,整理了 Vue Router 的信息图谱和核心配置清单。


1. vue-router 技术栈人员应了解的信息领域

如果把 Vue Router 想象成一个"地图导航系统",其知识体系可分为三个层次:

1.1 核心机制(它是什么?怎么工作?)
  • 核心原理 :本质是建立 URL路径Vue组件 之间的映射关系。当 URL 变化时,它不会刷新页面,而是渲染对应的组件,实现单页应用 (SPA) 的"假跳转"。
  • 两种模式
    • Hash 模式 :URL 中带有 #,兼容性好,不需要服务器配置。
    • History 模式 :URL 更美观(无 #),但需要后端服务器配合做"兜底"配置,否则刷新页面会 404。
1.2 核心功能(它能做什么?)

这是构建应用时必须掌握的功能模块:

  • 路由配置 :定义路径和组件的映射关系,支持无限嵌套的子路由 (children),用于构建复杂的页面布局。
  • 路由跳转
    • 声明式:在模板中使用 <router-link to="..."> 标签,它会被渲染成一个 <a> 标签。
    • 编程式:在逻辑中使用 router.push(...)router.replace(...) 进行跳转。
  • 路由传参
    • params :类似于"路径参数",如 /user/123,通常用于标识资源。需要在路由配置中定义 path: '/user/:id'
    • query :类似于"查询字符串",如 /user?id=123,通常用于附带搜索条件等参数。
  • 导航守卫:可以理解为路由跳转过程中的"安检"或"保险丝",常用于登录拦截、权限验证、页面标题修改等。
  • 路由元信息 (meta) :在路由配置中附加自定义数据,例如 { meta: { requiresAuth: true } },配合导航守卫即可轻松实现"哪些页面需要登录后才能访问"的逻辑。
1.3 在项目中的集成方式(代码怎么用?)

在你的 main.js 入口文件中,通常可以看到这段代码:

javascript 复制代码
import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 1. 引入路由配置

const app = createApp(App)
app.use(router) // 2. 注册路由插件
app.mount('#app')

完成这步,整个 Vue 应用就获得了路由能力。


2. vue-cli 项目中路由的核心配置清单

基于你提到的 vue-cliapp.vue 入口,一个最基础但完整的路由配置包含以下文件和步骤(以 Vue 3 为例):

2.1 核心文件与结构

通常在 src 目录下创建一个 router 文件夹,里面包含一个 index.js 文件。这是路由的"总调度室"。

2.2 核心配置步骤

第一步:定义路由组件

src/viewssrc/components 目录下创建 .vue 文件。
例如:Home.vue, About.vue

第二步:配置路由映射 (src/router/index.js)

javascript 复制代码
// 1. 引入 Vue 核心库和组件
import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'

// 2. 定义路由映射表 (routes)
const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home  // 直接引入,性能好
  },
  {
    path: '/about',
    name: 'About',
    // 懒加载:只有访问时才加载该组件,优化首屏速度
    component: () => import('../views/About.vue')
  }
]

// 3. 创建路由实例 (router)
const router = createRouter({
  history: createWebHistory(), // 使用 history 模式
  routes // 将映射表注入实例
})

// 4. 导出路由实例
export default router

第三步:在入口文件注入 (src/main.js)

javascript 复制代码
import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 导入上面导出的 router

const app = createApp(App)
app.use(router) // 这一步是关键,让整个应用具备路由能力
app.mount('#app')

第四步:在模板中指定渲染位置 (src/App.vue)

这就是你开头提到的代码:

html 复制代码
<template>
  <div id="app">
    <!-- 核心点:路由出口 -->
    <!-- 当前 URL 匹配到的组件,会被渲染在这里 -->
    <router-view /> 
  </div>
</template>

完成这四步,在地址栏输入 //about<router-view/> 处就会自动显示 HomeAbout 组件的内容了。

为了帮助你更好地理解,这里有一个简单的流程图,展示了当你改变 URL 时,Vue Router 是如何工作的:
Yes
No
用户改变URL
Vue Router

监听地址变化
在 routes 配置中

查找匹配的路由规则
找到对应的组件

如:/about -> About.vue
执行路由守卫

(如:登录检查)
守卫放行?
在 渲染目标组件
阻止跳转或重定向
更新页面内容

(无刷新,SPA体验)

总结

  1. 知识体系 :需要掌握核心原理 (SPA)、功能模块 (传参、守卫)、集成方式
  2. 核心配置 :也就是这"四板斧 "------
    1. 定义 routes(路径与组件对应表)。
    2. 创建 router 实例并导出。
    3. main.js 中执行 app.use(router)
    4. App.vue 中写入 <router-view> 占位。

2.vue-cli的基本路由核心应该配置的基本东西

相关推荐
懂懂tty1 小时前
Vue3 架构
前端·vue.js
四岁爱上了她1 小时前
自定义标签切换动画
javascript·css·css3
invicinble1 小时前
前端框架使用vue-cli( 第二层:工程配置层--总览)
前端·vue.js·前端框架
坤盾科技2 小时前
Docker 离线地图服务器搭建实战:Node.js + OpenLayers + MBTiles
linux·javascript·arcgis·docker·node.js
念你那丝微笑2 小时前
2026年Vue前端面试准备
前端·vue.js·面试
Copy_Paste_Coder2 小时前
小程序失败后,换个方向,终于成功搞到收益
前端·javascript·后端
im_AMBER2 小时前
Browser Agent 开发:从浏览器插件到Electron CDP
前端·javascript·架构·electron·agent
阿赛工作室2 小时前
基于Vue3和TensorFlow.js的数字图像识别应用HTML单文件
javascript·html·tensorflow
万少2 小时前
公测期 0 元/月!商汤 SenseNova 免费 Token 再不领就没了
前端·javascript·后端