0
点赞
收藏
分享

微信扫一扫

关于vue-router的使用


讲vue-router的时候,先讲导航守卫
三种导航守卫,全局守卫,路由守卫,组件守卫。
全局守卫
to是将要进入的组件
from是从哪里来的组件
next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。 resolve是promise对象里面的一个回调,是es6知识
next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。

next(false): 中断当前的导航。如果浏览器的 URL 改变了 (可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。
next(’/’) 或者 next({ path: ‘/’ }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。你可以向 next 传递任意位置对象,且允许设置诸如 replace: true、name: ‘home’ 之类的选项以及任何用在 router-link 的 to prop 或 router.push 中的选项。
next(error): (2.4.0+) 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给 router.onError() 注册过的回调。
const router=new Router({})
router.beforeEach(to,from,next){
}
router.afterEach(to,from,next){
}

Promise对象有以下两个特点。

(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。
(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved(已定型)。如果改变已经发生了,你再对Promise对象添加回调函数,也会立即得到这个结果。这与事件(Event)完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。

组件守卫
守卫是一个组件在执行生命周期之前的事情
,当next回调成功的时候,组件才会执行,不然一直是等待中

< script>
export default {
beforeRouteEnter (to, from, next) {
// …
next();
},
beforeRouteLeave (to, from, next) {
// …
},
beforeRouterUpdate(){}
}
</ script>
路由守卫
beforeEnter:function(to,from,next){
var a=true
if(info==“200”)
next()
else
next({path:"/zhu"})
},守卫的前置知识告一段落
路由的跳转
分两种一个是routerlinkto,一个是$router路由实例对象,必须要通过expor default或export注册到vue.use()里面去然后引入new Vue(). $mount(“选择器”)手动挂载. 每一次跳转都会进行路由的匹配.
< routerlink to="{path:’/a:id’,query:{id:1}}或者/a:id 或{name:‘b’,params:{id:1}}" >对应this. $route.params.id或this. $route.query.id
this. $router.push或replace一样的用法知识replace没有历史记录的栈
与window.history 与window.locaton用法类似
路由的匹配
{
path:"/a/:id"//动态匹配 对应this. $route.params.id ,
name:“b”,
alias:"c"别名,
redirect:"e"重定向,
compoent:“f"组件,
children:【
{
path:“bb”//动态匹配 对应this. $route.params.id ,
name:“b”,
components:{//g与f是命名视图 routerview
g:{
template:”< div > 123 < /div>"模板
},
f:h//h是组件
}
}

}
404错误页面
路由 { path: ‘*’ } 通常用于客户端 404 错误放置在路由匹配最后


举报

相关推荐

0 条评论