uniapp app端路由管理封装

当前封装并没有加动态路由 如有需要可手动添加一个 盛路由的数组 在跳转前进行判断

全局注册
import Router from '@/common/utils/router';
export default {
  install: function (Vue) {
    Vue.prototype.router = new Router();
  }
}

路由封装

/**
 * @exports
 * 全局路由管理
 */
export default class Router {
  constructor() {
    console.log("global router class");
  }
  success () {
    console.log("跳转成功");
  }
  fail (err) {
    console.error("跳转失败:", err);
  }
  /**
   * 保留当前页面,跳转到应用内的某个页面。
   * @param { String } url 目标地址
   * @description 使用uni.navigateBack可以返回到原页面
   * @example this.$router.push(url); => 去往指定页面
   */
  push (url) {
    uni.navigateTo({
      url,
      success: this.success,
      fail: this.fail
    });
  }
  /**
   * 关闭当前页面,返回上一页面或多级页面。
   * @param { num } delta 返回层级
   * @description 可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。
   * @example this.$router.back() => 返回上一页面
   */
  back (delta = 1) {
    uni.navigateBack({
      delta
    });
  }
  /**
   * 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
   * @param { String } url 目标地址
   * @example this.$router.goGlobal(url) => 返回上一页面
   */
  goGlobal (url) {
    uni.switchTab({
      url,
      success: this.success,
      fail: this.fail
    })
  }
  /**
   * 关闭所有页面,打开到应用内的某个页面。
   * @param { String } url 目标地址
   * @example this.$router.redirect(url) => 重定向到目标页面
   */
  redirect (url) {
    uni.reLaunch({
      url
    });
  }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容