接着上篇,我们昨晚了页面跳转,下面就搞点数据。
但是在加载数据之前,优化一下页面。如果使用浏览器打开我们的应用跳转页面的时候,会发现刷新按钮是不会变动的,只有地址栏变动。但是页面是一屏闪过,没有个提示什么的。如果遇到页面比较大的情况,出现等待的时候,用户没有感知反馈可能就退出了。
1. 进度条
这里我们用一个网上的插件nprogress
。
安装插件:npm install --save nprogress
我们为每个跳转都加上进度条的样式,可以直接在router.js文件里面添加如下:
/** 进度条 */
import NProgress from 'nprogress'
import 'nprogress/nprogress.css' //这个样式必须引入
// 进度条样式配置
NProgress.configure({
easing: 'ease', // 动画方式
speed: 500, // 递增进度条的速度
showSpinner: false, // 是否显示加载ico
trickleSpeed: 200, // 自动递增间隔
minimum: 0.3 // 初始化时的最小百分比
})
/** 进度条 end */
然后对router的进入和退出进行配置,那么每次进入新的页面时会调用进度条,完成之后关闭进度条beforeEach中不要忘记next()
:
router.beforeEach((to, from, next) => {
NProgress.start()
next()
})
router.afterEach(() => {
// 在即将进入新的页面组件前,关闭掉进度条
NProgress.done()
})
完整的router.js:
// 1. 引入vue
import Vue from 'vue'
// 2. 引入vue-router
import VueRouter from 'vue-router'
/**
* 动态改变是否懒加载
* 这里的意思是:依据当前项目环境,导入对应的文件,
*/
const _import = require('./_import_' + process.env.NODE_ENV)
/** 进度条 */
import NProgress from 'nprogress'
import 'nprogress/nprogress.css' //这个样式必须引入
// 进度条样式配置
NProgress.configure({
easing: 'ease', // 动画方式
speed: 500, // 递增进度条的速度
showSpinner: false, // 是否显示加载ico
trickleSpeed: 200, // 自动递增间隔
minimum: 0.3 // 初始化时的最小百分比
})
/** 进度条 end */
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'mobile',
component: