1. 路由之间是怎么跳转的?有哪些方式
-
<router-link to="需要跳转到页面的路径">
-
this.$router.push()跳转到指定的url,并在history中添加记录,点击回退返回到上一个页面
-
this.$router.replace()跳转到指定的url,但是history中不会添加记录,点击回退到上上个页面
-
this.$touter.go(n)向前或者后跳转n个页面,n可以是正数也可以是负数
2. vue-router怎么配置路由
在vue中配置路由分为5个步骤,分别是:
-
引入vue-router.js
-
配置路由path和组件, 和生成路由对象
-
把路由对象配置到new Vue中router选项下
-
页面使用<router-view></router-view> 承载路由
-
<router-link to="要跳转的路径"></router-link> 设置路由导航(声明式导航方式/编程式跳转)
3. vue-router的钩子函数都有哪些
关于vue-router中的钩子函数主要分为3类
-
全局钩子函数要包含: beforeEach
beforeEach函数有三个参数,分别是:
to:router即将进入的路由对象
from:当前导航即将离开的路由
next:function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的)否则为false,终止导航。
-
单独路由独享组件: beforeEnter,
-
组件内钩子: beforeRouterEnter, beforeRouterUpdate, beforeRouterLeave
4. 路由传值的方式有哪几种
Vue-router传参可以分为两大类,分别是编程式的导航 router.push和声明式的导航 router.push
编程式的导航:
字符串:直接传递路由地址,但是不能传递参数
this.$router.push("home")
对象:命名路由 这种方式传递参数,目标页面刷新会报错 - name+params
this.$router.push({name:"news",params:{userId:123})
查询参数 和 path 配对的是query
this.$router.push({path:"/news',query:{uersId:123})
接收参数 this.$route.query
声明式导航:
字符串:
<router-link to:"news"></router-link>
命名路由
<router-link :to:"{name:'news',params:{userid:1111}}"></route-link>
还可以to="/path/值" - 需要提前在路由 规则里值 /path/:key
查询参数
<router-link :to="{path:'/news',query:{userId:1111}}"></router-link>
还可以to="/path?key=value
5. 怎么定义vue-router的动态路由?怎么获取传过来的动态参数?
动态路由指的就是path路径上传值, 前提需要路由规则里提前配置 /path/:key 名, 可以写多个用 / 隔开, 获取使用 $route.params.key 名来提取对应用路径传过来的值
6. Vue的路由实现模式:hash模式和history模式
hash模式:在浏览器中符号“#”,#以及#后面的字符称之为hash,用 window.location.hash 读取。特点:hash虽然在URL中,但不被包括在HTTP请求中;用来指导浏览器动作,对服务端安全无用,hash不会重加载页面。
history模式:history采用HTML5的新特性;且提供了两个新方法: pushState(), replaceState()可以对浏览器历史记录栈进行修改,以及popState事件的监听到状态变更