第一天

2019-11-20  本文已影响0人  流觞小菜鸟

1、简述vuex的工作流程?

2、vuex-router导航守卫(钩子函数)?

概念

导航发生变化时,导航钩子主要用来拦截导航,让它完成跳转或取消

拦截方式

(一)全局的

(1)beforeEach - 前置钩子函数

参数to、from、next

to:去哪里

from:从哪里

next():是否跳转由它决定

使用场景 - 未登录去下单,跳转到登录页

router.beforeResolve (v 2.5.0+) 全局解析守卫 和beforeEach类似,
区别是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就被调用 即在 beforeEach 和 组件内beforeRouteEnter 之后
(2)afterEach - 后置钩子函数
参数to、from

to:去哪里

from:从哪来

使用场景 - 改变浏览器title

(二)单个路由独享的

beforeEnter

参数to、from、next

同beforeEach

(三) 组件级的

(1)beforeRouteEnter - 进入组件前

参数to、from、next

同beforeEach

使用场景 - 进入这个组件前你要做什么初始化操作

(2)beforeRouteUpdate - 组件更新或改变时

参数to、from、next

同beforeEach

使用场景 - 复用组件时(对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候)

(3)beforeRouteLeave - 离开组件时

参数to、from、next

同beforeEach

使用场景 - 清除定时器等等

3、详述keep-alive组件?

包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们,它自身不会渲染一个DOM元素,也不会出现在父组件中

keep-alive提供了三个可选属性
include - 字符串或数组或正则表达式。只有名称匹配的组件会被缓存。
exclude - 字符串或数组或正则表达式。名称匹配的组件不会被缓存。
max - 数字类型。表示最多可以缓存多少组件实例

上一篇下一篇

猜你喜欢

热点阅读