知识点
Vue支持对异步组件的加载状态处理,参见这里 Vue异步组件处理加载状态
背景
其实我们大部分使用场景都是结合路由异步加载一起使用,然后可能会导致 Vue组件内的路由钩子无法触发
,以前遇到时用了别的方案绕过去了,现在有其它同事也遇到类似问题那就兼容一下
原因是因为:路由组件钩子是触发在路由所指向的跟组件上,所以你触发不到了..,解决方案就是在中间
functional
组件把钩子转发到实际的视图组件。
代码
1 | const asyncComponent = (componentPromise) => { |
如上实现为hack代码,beforeRouteEnter
子组件是异步的这里不好处理暂时忽略,等我看了 VueRouter
代码在处理