1、vue-router怎么重定向页面?
路由中配置redirect属性
在routes:[{
{ path: ‘/a’, redirect: ‘/b’ }
}]

2、 vue-router怎么配置404页面?

在router.js中,由于路由是从上到下执行的,只要在路由配置中最后面放个*号就可以了

//通常使用通配符进行配置404页面
{
path: ‘*’,
component:notFound
}
3、vue-router路由有几种模式?说说它们的区别?

hash模式:
1.url路径会出现“#”号字符
2.hash值不包括在Http请求中,它是交由前端路由处理,所以改变hash值时不会刷新页面,也不会向服务器发送请求

3.hash值的改变会触发hashchange事件
history模式:
1.整个地址重新加载,可以保存历史记录,方便前进后退
2.依赖H5 API和后台配置,没有后台配置的话,页面刷新时会出现404

4、vue-router有哪几种导航钩子( 导航守卫 )?
全局守卫:
beforeEach((to, from, next) => {调用next来resolve这个钩子} ),
beforeResolve((to, from, next) => {} ),
afterEach((to, from) => {} ) //没有next()

路由独享守卫:
beforeEnter((to, from, next) => {} ),
组件内部守卫:
beforeRouteEnter((to, from, next) => {next可以传回调,回调里面可以用vm访问实例} ), 内部没有this,因为路由还没confirm
beforeRouteUpdate((to, from, next) => {}),可以拿到this
beforeRouteLeave((to, from, next) => {})

5、 说说你对router-link的了解
vue-router插件的其中一个组件, 用于跳转路由, 类似于a标签, 它一般也会渲染成a标签, 但是可以通过tag来变更默认渲染元素, 通过to来跳转

6、 vue-router是什么?有哪些组件?
Vue Router 是 路由管理器。可以用来进行页面跳转和跳转传参。
和和

7、$route和 $router的区别是什么?

route是“路由信息对象”,包括path,params,hash,query,fullPath,matched,name等路由信息参数。
router是“路由实例对象”,包括了路由的跳转方法(push、replace),钩子函数等。

8、 vue-router如何响应路由参数的变化?
用watch 检测
// 监听当前路由发生变化的时候执行
watch: {
$route(to != from){
console.log(to.path)
// 对路由变化做出响应
}
}
组件内导航钩子函数
beforeRouteUpdate(to, from, next){
// to do somethings
}
9、在什么场景下会用到嵌套路由?

在页面点击不同的选项卡切换不同的路由来展示不同的内容时

10、如何获取路由传过来的参数?

如果使用query方式传入的参数使用this. r o u t e . q u e r y 接 收 如 果 使 用 p a r a m s 方 式 传 入 的 参 数 使 用 t h i s . route.query 接收 如果使用params方式传入的参数使用this. route.query使params使this.route.params接收

11、 在vue组件中怎么获取到当前的路由信息?

如果是template中获取直接 r o u t e 即 可 如 果 是 s c r i p t 中 获 取 t h i s . route 即可 如果是script中获取 this. routescriptthis.route
可以 console.log(this.$route) 查看其详细信息

下面是我自己做的一些关于vue-router的笔记

跳转方式;

  <router-link :to="{name:'Home',params:{username:'lly'}}">Home</router-link> 

1、this.$router.go(n)
相对于当前页面向前或向后跳转多少个页面,类似 window.history.go(n)。n可为正数可为负数。正数返回上一个页面
2、this.$router.push()
由于动态路由也是传递params的,所以在 this.$router.push() 方法中path不能和params一起使用,否则params将无效。需要用name来指定页面。

通过name获取页面,传递params:
传值跳转:this.$router.push({name:"跳转页面name名字" , params:{ 名称:要传的值}})
对应页面接受:this.$route.params.名称

传值跳转:this.$router.push({path:"对应的路径", query:{ 名称:要传的值}})
对应页面接受:this.$route.query.名称

传参是this.$router,
接收参数是this.$route,

route是“路由信息对象”,包括path,params,hash,query,fullPath,matched,name等路由信息参数。
router是“路由实例对象”,包括了路由的跳转方法(push、replace),钩子函数等。

vue路由传参params和query的区别

1.params只能用name来引入路由,query用path来引入

2.params类似于post,query更加类似于我们ajax中get传参,说的再简单一点,前者在浏览器地址栏中不显示参数,后者显示,所以params传值相对安全一些。

3.取值用法类似分别是this. r o u t e . p a r a m s . n a m e 和 t h i s . route.params.name和this. route.params.namethis.route.query.name。

4.params传值一刷新就没了,query传值刷新还存在

vue中的redirect重定向
https://www.cnblogs.com/Progress-/p/12188413.html

加在router.js中的

const router =newVueRouter({

// 解决vue路由跳转页面之后页面不从最顶端显示问题
  scrollBehavior(to, from, saveTop) { if (saveTop) { return saveTop; } else { return { x: 0, y: 0 } } },

}

1.router.currentRoute:当前的路由信息对象,我们可以通过

router.currentRoute.fullPath获得解析后的 URL,包含查询参数和 hash 的完整路径,如果要访问的页面的路由有命名(name)的话,可以通过router.currentRoute.name获得当前路由的名称。

2.router.replace:作用和router.push相同,不过它不会向history添加新纪录,而是替换当前的history记录。

Logo

前往低代码交流专区

更多推荐