小程式手動實現路由攔截

Caomeinico發表於2021-10-20

小程式中並沒有像 vue-router 一樣的路由攔截功能,所以需要自己手動實現,下面就把具體的實現方法分享出來供大家參考。


具體實現思路與vue相同,定義一個全域性的 token 變數,進入某一個頁面的時候判斷是否存在這個 token 是否存在,存在則正常跳轉,不存在則跳轉到登入頁面。


建立一個工具資料夾,建立一個 routers.js ,封裝路由攔截的具體程式碼如下:

// routers.js

export function routerFillter(pageObj) {

    let _onShow = pageObj.onShow;

    pageObj.{

      const token = getApp().globalData.token;

      if (token && token.length > 0) {

        // 有登入資訊 - 頁面開啟

        _onShow.call(this)

      } else {

        // 無登入資訊 - 登入

        wx.switchTab({

          url: '/pages/user/user'

        })

      }

    }

    return Page(pageObj);

  }


在需要攔截的頁面中匯入攔截方法,使用發放如下:

// index.js

import { routerFillter } from "../../utils/routers";

routerFillter({ // routerFillter代替了原來的 Page

  // 正常邏輯書寫

  data: {},

  ...

})

這樣一個簡單的路由攔截功能就完成了。好買網GOODmai


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70008684/viewspace-2838367/,如需轉載,請註明出處,否則將追究法律責任。

相關文章