0.0.3 • Published 4 years ago

@retailwe/common-libs-navigator v0.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

Navigator 导航器

Feature

  1. 防抖
  2. 最大页面栈处理
  3. Tabbar 页面处理

安装

yarn add '@retailwe/common-libs-navigator' --save-exact

使用 gotoPage

定义:

function gotoPage(path, query, options);

使用:

import Navigator from '@retailwe/common-libs-navigator';

const navigator = new Navigator();

navigator.gotoPage('/pages/home/index', { name: 'retailwe' });

策略说明

  1. 防抖:短时间多次调用,只触发一次
  2. 最大页面栈处理:
    1.  目标页面存在页面栈中,页面出栈只到目标页面处于栈顶(wx.navigateBack
    2. 目标页面不在页面栈中,出栈第一个页面,压入目标页面(wx.redirect
  3. Tabbar 页面处理:清除页面栈,压入目标页面(wx.switchTab

显式 Redirect

navigator.gotoPage(
  '/pages/home/index',
  { name: 'retailwe' },
  { redirect: true }
);

Tabbar 页面跳转

由于目前还没有比较成熟的判断跳转页面是 Tabbar 页面的方式,需要调用时显式传递

import { Navigator, PathType } from '@retailwe/common-libs-navigator';

const navigator = new Navigator();

navigator.gotoPage({
  path: '/pages/home/index',
  type: PathType.TAB
});

结合 RouterMap

import { PathType, Navigator } from '@retailwe/common-libs-navigator';

// 维护路由映射表
const routes = {
  home: {
    path: '/pages/home/index',
    type: PathType.TAB
  },
  log: {
    path: '/pages/log/index',
    type: PathType.NORMAL
  }
};

const navigator = new Navigator();

navigator.gotoPage(routes.home);

单元测试覆盖率

单元测试覆盖率