0.0.3 • Published 4 years ago
@retailwe/common-libs-navigator v0.0.3
Navigator 导航器
Feature
- 防抖
- 最大页面栈处理
- 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' });
策略说明
- 防抖:短时间多次调用,只触发一次
- 最大页面栈处理:
- 目标页面存在页面栈中,页面出栈只到目标页面处于栈顶(
wx.navigateBack
) - 目标页面不在页面栈中,出栈第一个页面,压入目标页面(
wx.redirect
)
- 目标页面存在页面栈中,页面出栈只到目标页面处于栈顶(
- 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);