📚 Vue Router 4 核心知识点(Vue3技术栈)面试指南

大家好,我是鱼樱!!!

关注公众号【鱼樱AI实验室】持续每天分享更多前端和AI辅助前端编码新知识~~

今天给大家分享一个 Vue Router 路由面试准备,搞快点看下面就行!!!

一、安装与配置

sh 复制代码
npm install vue-router@4
js 复制代码
 
// main.js
import { createApp } from 'vue'
import { createRouter, createWebHashHistory } from 'vue-router'

const router = createRouter({
  history: createWebHashHistory(),
  routes: []
})

const app = createApp(App)
app.use(router)

二、路由配置详解

1. 基本路由配置

js 复制代码
 
const routes = [
  {
    path: '/',
    name: 'Home',
    component: HomeView
  }
]

2. 动态路由匹配

js 复制代码
 
{
  path: '/user/:id',
  component: UserView
}
  • 获取参数:$route.params.id
  • 正则匹配::id(\d+) 匹配数字

3. 嵌套路由

js 复制代码
 
{
  path: '/dashboard',
  component: Dashboard,
  children: [
    { path: 'profile', component: Profile }
  ]
}

4. 命名视图

html 复制代码
 
<router-view name="header"/>
js 复制代码
 
{
  path: '/',
  components: {
    default: Main,
    header: Header
  }
}

三、路由导航

1. 声明式导航

html 复制代码
 
<router-link to="/about">About</router-link>
<router-link :to="{ name: 'user', params: { id: 123 }}">User</router-link>

2. 编程式导航

js 复制代码
 
// 字符串路径
router.push('/users')

// 对象形式
router.push({ name: 'user', params: { id: '123' } })

// 替换当前位置
router.replace({ path: '/login' })

四、导航守卫

1. 全局守卫

js 复制代码
 
router.beforeEach((to, from, next) => {
  // 权限验证逻辑
  next()
})

router.afterEach((to, from) => {
  // 页面统计逻辑
})

2. 路由独享守卫 beforeEnter

js 复制代码
 
{
  path: '/admin',
  component: Admin,
  beforeEnter: (to, from, next) => {
    // 验证逻辑
  }
}

3. 组件内守卫

js 复制代码
 
export default {
  beforeRouteEnter(to, from, next) {
    // 组件渲染前调用
  },
  beforeRouteUpdate(to, from) {
    // 路由改变但组件复用时
  },
  beforeRouteLeave(to, from) {
    // 导航离开时
  }
}

五、高级特性

1. 路由元信息

js 复制代码
 
{
  path: '/dashboard',
  meta: { requiresAuth: true }
}

2. 滚动行为 scrollBehavior

js 复制代码
 
const router = createRouter({
  scrollBehavior(to, from, savedPosition) {
    return savedPosition || { top: 0 }
  }
})

3. 路由懒加载

js 复制代码
 
const UserView = () => import('../views/UserView.vue')

六、组合式API使用

js 复制代码
 
import { useRouter, useRoute } from 'vue-router'

export default {
  setup() {
    const router = useRouter()
    const route = useRoute()

    const navigate = () => {
      router.push({ name: 'Home' })
    }

    return { navigate }
  }
}

七、常见问题解决方案

1. 路由权限控制

js 复制代码
 
router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated()) {
    next('/login')
  } else {
    next()
  }
})

2. 动态添加路由

js 复制代码
 
router.addRoute({
  path: '/new-route',
  component: NewComponent
})
// Vue2中,可以通过路由的addRoutes() 和 addRoute() 两种方法实现路由权限动态渲染

3. 404页面处理

js 复制代码
 
{ path: '/:pathMatch(.*)*', component: NotFound }

// Vue2中
{
  path: '*',
  component: () => import('./components/NotFound.vue') // 导入404组件
}

八、注意事项

  1. paramspath不能同时使用
  2. 路由组件复用时的生命周期问题
  3. Hash模式与History模式的区别
  4. 导航守卫执行顺序:全局 → 路由 → 组件

希望这个文档能帮助您系统复习Vue Router核心知识!🎯建议结合官方文档和实际项目经验进行深入理解。

相关推荐
r0ad9 分钟前
从痛点到解决方案:为什么我开发了Chrome元素截图插件
前端·chrome
OEC小胖胖16 分钟前
连接世界:网络请求 `wx.request`
前端·微信小程序·小程序·微信开放平台
jingling55528 分钟前
解决微信小程序真机调试中访问本地接口 localhost:8080 报错
前端·微信小程序·小程序
en-route30 分钟前
使用 Flask 构建 Web 应用:静态页面与动态 API 访问
前端·python·flask
IT_陈寒31 分钟前
Vite 5年迭代揭秘:3个核心优化让你的项目构建速度提升200%
前端·人工智能·后端
怎么吃不饱捏1 小时前
vue3+vite,引入阿里巴巴svg图标,自定义大小颜色
前端·javascript·vue.js
无敌最俊朗@1 小时前
MQTT 关键特性详解
java·前端·物联网
JAVA学习通1 小时前
微服务项目->在线oj系统(Java-Spring)----[前端]
java·开发语言·前端
excel1 小时前
Vue3 响应式系统核心执行器:Reactive Effect 与依赖调度机制
前端
南玖i3 小时前
vue3 通过 Vue3DraggableResizable实现拖拽弹窗,可修改大小
前端·javascript·vue.js