美文网首页
2018-12-19

2018-12-19

作者: 哪吒大王 | 来源:发表于2018-12-19 17:57 被阅读0次

    场景:vue路由加载页面时,数据加载慢的时候页面会有闪动的效果,数据加载前和加载后的区别。(特别是el-table表格数据)

    思路:路由前加载数据,等数据加载完再路由渲染页面

    解决方案:使用vue-router的路由守卫beforeRouteEnter

    组件内直接定义以下路由导航守卫,和钩子函数的写法一样,下面列出三种路由守卫:

    beforeRouteEnter(to,from,next)0{

    // 在渲染该组件的对应路由被 confirm 前调用// 不!能!获取组件实例 `this`

    // 因为当守卫执行前,组件实例还没被创建

    },

    beforeRouteUpdate(to,from,next){

    // 在当前路由改变,但是该组件被复用时调用

    // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,

    // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。

    // 可以访问组件实例 `this`

    },

    beforeRouteLeave(to,from,next){

    // 导航离开该组件的对应路由时调用// 可以访问组件实例 `this`

    }

    vue-router讲的含详细,具体访问:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#%E7%BB%84%E4%BB%B6%E5%86%85%E7%9A%84%E5%AE%88%E5%8D%AB

    https://router.vuejs.org/zh/guide/advanced/data-fetching.html#%E5%AF%BC%E8%88%AA%E5%AE%8C%E6%88%90%E5%90%8E%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE

    相关文章

      网友评论

          本文标题:2018-12-19

          本文链接:https://www.haomeiwen.com/subject/bozjkqtx.html