ios微信瀏覽器內vue項目url不改變

項目是nuxt的,雖然vue-router的模式是history,但是在ios里有個問題:當路由變化時,微信瀏覽器的url不改變,導致從微信瀏覽器跳轉到手機瀏覽器時,不能打開指定頁面。

解決方案:在全局路由守衛后置鉤子(afterEach)里,主動修改url

// plugin/route.js
export default ({ app }) => {
  app.router.afterEach((to, from) => {
    const u = navigator.userAgent.toLowerCase()
    if(u.indexOf("like mac os x") < 0 || u.match(/MicroMessenger/i) != 'micromessenger') return
    if (to.path !== global.location.pathname) {
      location.assign(to.fullPath)
    }
  })
}

之所以用全局后置鉤子,但是有個頁面用了組件內的前置鉤子,二者有沖突,導致該頁面打不開。
而全局后置鉤子在路由守衛順序中處于最后一個階段,所以用起來沒問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • VUE Vue :數據驅動的M V Vm框架 m :model(后臺提供數據),v :view(頁面),vM(模板...
    wudongyu閱讀 5,418評論 0 11
  • 介紹 vue-router是一個vue插件。其實質是在location.hash、location.replace...
    AmazRan閱讀 1,575評論 0 6
  • 前言 vue-router是什么:是vue.js官方的路由管理器和vue.js的核心深度的集成,讓開發者更加簡單的...
    GUAN_one閱讀 3,733評論 0 2
  • 學習目的 學習Vue的必備技能,必須 熟練使用 Vue-router,能夠在實際項目中運用。 Vue-rout...
    _1633_閱讀 92,409評論 3 58
  • Vue知識點的總結 Vue中的指令及其基本語法: 第一步:從官網上下載vue開發版本的js文件 引入js文件 ...
    往前走莫回頭_2cd6閱讀 1,484評論 0 1