100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > vue跳转页面增加等待_vue-router懒加载时添加loading效果

vue跳转页面增加等待_vue-router懒加载时添加loading效果

时间:2021-01-29 23:02:57

相关推荐

vue跳转页面增加等待_vue-router懒加载时添加loading效果

近期在做一个微信公众号的项目,在页面跳转时发现页面会闪一下,用户体验很不好,而且如果网慢时页面是没有数据的样式会乱很丑。于是乎,就百度看了前人的各种解决方案,个人觉得以下链接中的方案还是很好的,代码简洁,效果也很满意,不需要每个页面做相对应的操作只需要在router.js文件中添加几行代码即可。

唯一的缺点就是在Android运行没问题,但是ios会有时关不上loading效果一直处于loading状态(而且很频繁),刚开始我以为是网络的问题,后台切换到4G还是不行。我就各种调试,后来发现加上一个setTimeout便完美的解决了问题,代码如下:

import Vue from 'vue'

import Router from 'vue-router'

//loading组件

import {Indicator} from 'mint-ui';

Vue.use(Router)

let spinRoute = {

show() {//加载中显示loading组件

Indicator.open({spinnerType: 'fading-circle'});//开启loading组件,这里我用的mint-ui

},

resolve(resolve) {//加载完成隐藏loading组件

return component=>{

setTimeout(()=>{

Indicator.close()//关闭loading组件

resolve(component);

}, 10)

}

}

}

export default new Router({

mode: 'hash',

base: process.env.BASE_URL,

routes: [

{

path: '/home',

name: 'home',

component: resolve => {

spinRoute.show();//加载时开启loading

require(['./views/Home.vue'], spinRoute.resolve(resolve))//路由懒加载

},

meta: {

title: '首页'

},

},

{

path: '/QRcode',

name: 'QRcode',

component: resolve => {

spinRoute.show();

require(['./views/QRcode.vue'], spinRoute.resolve(resolve))

},

meta: {

title: '游戏推广'

}

},

{

path: '/NotAgent',

name: 'NotAgent',

component: resolve => {

spinRoute.show();

require(['./views/NotAgent.vue'], spinRoute.resolve(resolve))

},

meta: {

title: '友情提示'

}

},

{path:'*',redirect:'/home'}

]

})

最后,感谢以上链接中的大牛给到大家的解决方案.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。