vue项目内有一个分享功能,但是这个分享出去的页面打开会非常慢,所以就想到了单独写了一套H5页面专门用于手机端打开,然后在这个vue项目的分享页面初始化函数里面加一个判断终端是否为移动端,如果是就再做一次跳转,到这个单独的H5页面上去,这样就不会去加载vue框架,打开速度会更快。以上是初始方案和预期。
但是问题就是:因为这个分享链接的路径仍然是VUE项目的路由页面,所以尽管在初始化生命周期内就做了判断并加以重现跳转,在测试的时候发现,分享出去用手机打开网页的时候,仍然需要加载很久的vue框架,并且在成功初始化vue项目后才会跳转到H5。这样就没有达到预期的效果。
然后又做了第二次改动,把这个判断的流程从原来的分享页面的生命周期里面搬到router路由拦截里面去
,以期能绕开vue项目的初始化并快速跳转到H5页面打开界面的效果。但是仔细想了一下,仍然无法绕开vue项目初始化这个阶段,依然会非常耗时间。
所以想请教一下,这种情况下,如何能实现在vue项目内,在项目初始化之前就能通过判断,跳转到第三方页面去——需要注意的一点是,不能直接在静态入口页面index.html里面就直接跳转,因为不能影响vue项目的正常流程,只能在特定的路由/invite页面才能做对应跳转。
ps:现在我给产品的保底方案就是在分享功能这里,单独加一个手机端的分享链接(虽然能简单粗暴的解决问题),但是有点不甘心啊,主要就是想在/invite这个路由界面一加载就做判断并且跳转的方案最优雅。但是默认打开这个路由的时候,都会去初始化加载vue框架,问题症结就在这里
加一个判断终端是否为移动端
这部分可以写在 main.js App.vue mount 挂在之前,路由可以通过 location.href 获取