VueRouter面试题汇总

1.什么是前端路由?

前端路由是在单页面应用的情况下,通过对每个视图展示形式匹配一个特殊的url来实现所谓的切换效果。不会重新向服务端发送请求,也不会跳转页面。无论是刷新、前进、还是后退,都可以通过特殊url实现。

2.vue-router 路由钩子函数是什么 执行顺序是什么?

全局前置/钩子:beforeEach、beforeResolve、afterEach

路由独享的守卫:beforeEnter

组件内的守卫:beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave 

3.路由跳转的3种方式

1.通过声明式路由导航跳转

<router-link :to="{ name: 'page1', param: {} }">

2.通过name或者path跳转

this.$router.push({ name: "page1", param: {} });

3.配置path,跳转

this.$router.push("/page1");

4.router中的两种路由模式

1.hash模式

location.hash 的值实际就是 URL 中#后面的东西 它的特点在于:hash 虽然出现 URL 中,但不会被包含在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。

可以为 hash 的改变添加监听事件

window.addEventListener("hashchange", callback, false);

2.history模式

5.vue-router实现懒加载的方式有哪些

1.在声明路由路径文件里面使用import方式引入组件 () => import(组件文件路径)

2.使用webpack中的require.ensure方法(不太会用)

3.通过组件内部,局部懒加载的方式

components: {
  comp: (resolve) => {
    require([path], resolve);
  }
}

6.Vue-router跳转和location.href有什么区别?

location.href进行页面跳转的时候刷新了页面,主要用于多个页面跳转,不适用于单页面应用


而Vue-router主要是通过history.pushState进行页面跳转,只用于单页面模式下

7. 切换路由时需要保存草稿的功能,怎么实现?

通过keep-alive

<keep-alive>
  <router-link v-if="$route.meta.isCache"></router-link>
</keep-alive>
<router-link v-if="!$route.meta.isCache"></router-link>

[
  {
    path: "/path1",
    name: "name1"
    meta: {
      isCache: true  // 配置是否需要缓存
    }
  }
]

8.vue-router如何响应路由参数的变化?

当从/page/apple => /page/orange 时,

1. 可以用watch方法

// 监听页面切换
watch: {
  "$route.path"() {
    console.log("页面发生了切换");
  }
}

2. 在路由守卫中,页面跳转都会经过路由守卫,故可以在beforeEach中监听,

// 页面跳转前的操作
beforeEach(to, from, next) {
  // 执行路由跳转的逻辑
  doSomething();
}

9.说说vue-router完整的导航解析流程是什么? 

1. 导航被触发


2. 在即将离开的组件里调用beforeRouteLeave守卫


3. 调用全局前置守卫beforeEach守卫


4. 在重用的组件里调用beforeRouteUpdate守卫 / 调用路由配置的beforeEnter守卫


5. 解析异步路由组件


6. 在被激活的组件里调用beforeRouteEnter


7. 调用全局的beforeResolve守卫


8. 导航被确认


9. 调用全局的 afterEach 钩子


10. 触发DOM更新


11. 用创建好的实例调用 beforeRouteEnter 守卫传给 next 的回调函数。 

10.路由之间跳转方法

组件方式 <router-link>


vue-router中Api方式:$router.push、$router.replace、$router.redirect()

参考链接:
VUE之vue-router常见面试题_vue router面试题-CSDN博客 【vue】vue-Router 常见面试题_vue-router面试题-CSDN博客

Vue RouterVue.js 官方的路由管理器,它可以帮助我们在 Vue 应用中实现页面的跳转和路由控制。下面是一些常见的 Vue Router 面试题及其答案: 1. 什么是 Vue RouterVue RouterVue.js 官方提供的插件,用于实现前端路由。它可以将不同的 URL 映射到不同的组件,实现单页应用的页面切换和导航控制。 2. Vue Router 的核心概念有哪些? Vue Router 的核心概念有路由、路由器和路由组件。路由用于定义 URL 和组件之间的映射关系,路由器负责管理路由,并注册到 Vue 实例中,而路由组件则是每个 URL 对应的组件。 3. Vue Router 的基本用法是什么? 首先,我们需要通过 npm 安装 vue-router 包。然后,在 main.js 中导入 vue-router 并通过 Vue.use() 方法注册插件。接下来,创建一个路由器实例,并定义路由表,其中包含每个 URL 对应的组件。最后,将路由器实例注入到 Vue 实例中,并在模板中使用 <router-view> 组件显示当前 URL 对应的组件。 4. Vue Router 的动态路由是什么? 动态路由是指在定义路由时,通过参数来匹配不同的 URL。例如,可以定义一个含有参数的路由,如 "/user/:id",然后在组件中通过 $route.params.id 来获取参数值。 5. Vue Router 的导航守卫是什么? 导航守卫是 Vue Router 提供的一种机制,用于在路由切换前后执行特定的逻辑。常用的导航守卫有 beforeRouteEnter、beforeRouteUpdate 和 beforeRouteLeave。 6. Vue Router 的懒加载是什么?如何使用? 懒加载是指在需要时才加载组件,而不是一次性加载所有组件。Vue Router 可以通过 webpack 的 code-splitting 特性实现懒加载。在定义路由时,可以使用 import() 函数来指定需要懒加载的组件。 7. Vue Router 的路由传参有哪些方式? Vue Router 提供了多种方式来进行路由传参,包括通过 URL 参数、查询字符串、命名路由和编程式导航等方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code store

感谢你的认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值