vue.js URL跳转的问题

现在需要网站在打开的时候判断客户端是否是移动设备,如果是则跳转到手机版的网址。

网站是用vue cli创建的工程,在main.js里加了个设备判断的方法,在beforeCreate()里执行判断和跳转。 判断移动设备的代码正常,但是在手机打开网站的时候,会闪烁一下当前网页的内容,然后才跳转到指定网址(这样用户体验不好而且白白浪费了流量)。

如何在网页内容加载前就直接跳转呢?

clipboard.png

阅读 6.3k
5 个回答

在网关层判断UA,作301跳转。

在Javascript里做跳转,无论如何都会先加载网页和脚本,达不到你的要求。

建议在全局路由上定义:

router.beforeEach( function(to, from, next){
    //在这里判断
});

new Vue({
    router
})

你判断系统,如果是windows或者mac系统,就跳入pc项目,如果不是以上的就跳入移动项目,这个就在你的入口文件main.js页面中实例化的时候就跳,切记,在跳转的时候使用location.replace否则点击物理返回时,会跳回原页面

mounted() {

if (/Windows|Macintosh/i.test(navigator.userAgent)) {
  location.replace('http://www.pc18.vip/pc18/index.html');
};

}

新手上路,请多包涵

建议在vue-router全局钩子内,页面加载之前判断跳对应路由加载内容

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题