美文网首页
vue实现前进刷新后退不刷新页面

vue实现前进刷新后退不刷新页面

作者: WangYatao | 来源:发表于2019-10-23 18:08 被阅读0次

    使用vue-navigation插件

    安装vue-navigation

    npm i -S vue-navigation
    

    或者

    yarn add vue-navigation
    

    main.js

    import Vue from 'vue'
    import router from './router' // vue-router instance
    import Navigation from 'vue-navigation'
     
    Vue.use(Navigation, {router})
    

    App.vue

    <template>
      <navigation>
        <router-view></router-view>
      </navigation>
    </template>
    

    使用以上操作即可完成前进刷新页面后退不刷新页面,但是在vue3项目中控制台会报错。
    解决方案:
    原因
    vue router ≥ v3.1 后 ,回调形式改成promise api了,返回的是promise,如果没有捕获到错误,控制台始终会出现如图的警告。

    解决方法一

    // 在引用vue-router的页面添加一段代码
    const originalPush = Router.prototype.push
    Router.prototype.push = function push(location) {
      return originalPush.call(this, location).catch(err => err)
    }
    

    解决方法二(推荐)

    // 补齐 router.push() 的第三个参数
    this.$router.push(route, () => {}, (e) => {
        console.log('输出报错',e) 
    })
    

    解决方法三(推荐)

    // 捕获 router.push 异常
    this.$router.push(route).catch(err => {
        console.log('输出报错',err)
    })
    

    本文参考:https://blog.csdn.net/gxdvip/article/details/101016946

    相关文章

      网友评论

          本文标题:vue实现前进刷新后退不刷新页面

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