提交 102c64bf 编写于 作者: fxy060608's avatar fxy060608

refactor: __isTabBar

上级 0a387b8e
......@@ -12,7 +12,6 @@ declare module '@vue/runtime-core' {
$page: Page.PageInstance['$page']
$mpType?: 'app' | 'page'
$locale?: string
__isTabBar: boolean
}
type LifecycleHook = Function[] | null
......@@ -24,6 +23,7 @@ declare module '@vue/runtime-core' {
__isUnload: boolean
__isVisible: boolean
__isActive?: boolean // tabBar
__isTabBar?: boolean
// h5 | app
$wxsModules?: string[]
}
......
......@@ -2285,7 +2285,7 @@ var serviceContext = (function (vue) {
pageVm.$page = page;
pageVm.$mpType = 'page';
if (page.meta.isTabBar) {
pageVm.__isTabBar = true;
pageVm.$.__isTabBar = true;
// TODO preload? 初始化时,状态肯定是激活
pageVm.$.__isActive = true;
}
......@@ -10394,7 +10394,7 @@ var serviceContext = (function (vue) {
function getCurrentPages$1() {
const curPages = [];
pages.forEach((page) => {
if (page.__isTabBar) {
if (page.$.__isTabBar) {
if (page.$.__isActive) {
curPages.push(page);
}
......@@ -11834,14 +11834,14 @@ var serviceContext = (function (vue) {
if (len >= 1) {
// 前一个页面是非 tabBar 页面
currentPage = pages[len - 1];
if (currentPage && !currentPage.__isTabBar) {
if (currentPage && !currentPage.$.__isTabBar) {
// 前一个页面为非 tabBar 页面时,目标tabBar需要强制触发onShow
// 该情况下目标页tabBarPage的visible是不对的
// 除非每次路由跳转都处理一遍tabBarPage的visible,目前仅switchTab会处理
// 简单起见,暂时直接判断该情况,执行onShow
callOnShow = true;
pages.reverse().forEach((page) => {
if (!page.__isTabBar && page !== currentPage) {
if (!page.$.__isTabBar && page !== currentPage) {
closePage(page, 'none');
}
});
......@@ -11872,7 +11872,7 @@ var serviceContext = (function (vue) {
tabBarPage = page;
}
else {
if (page.__isTabBar) {
if (page.$.__isTabBar) {
page.$.__isActive = false;
}
}
......
......@@ -61,14 +61,14 @@ function _switchTab({
if (len >= 1) {
// 前一个页面是非 tabBar 页面
currentPage = pages[len - 1]! as ComponentPublicInstance
if (currentPage && !currentPage.__isTabBar) {
if (currentPage && !currentPage.$.__isTabBar) {
// 前一个页面为非 tabBar 页面时,目标tabBar需要强制触发onShow
// 该情况下目标页tabBarPage的visible是不对的
// 除非每次路由跳转都处理一遍tabBarPage的visible,目前仅switchTab会处理
// 简单起见,暂时直接判断该情况,执行onShow
callOnShow = true
pages.reverse().forEach((page) => {
if (!page.__isTabBar && page !== currentPage) {
if (!page.$.__isTabBar && page !== currentPage) {
closePage(page, 'none')
}
})
......@@ -97,7 +97,7 @@ function _switchTab({
page.$.__isActive = true
tabBarPage = page
} else {
if (page.__isTabBar) {
if (page.$.__isTabBar) {
page.$.__isActive = false
}
}
......
......@@ -20,7 +20,7 @@ export function getAllPages() {
export function getCurrentPages() {
const curPages: ComponentPublicInstance[] = []
pages.forEach((page) => {
if (page.__isTabBar) {
if (page.$.__isTabBar) {
if (page.$.__isActive) {
curPages.push(page)
}
......
......@@ -41,7 +41,7 @@ export function initPageVm(
pageVm.$page = page
pageVm.$mpType = 'page'
if (page.meta.isTabBar) {
pageVm.__isTabBar = true
pageVm.$.__isTabBar = true
// TODO preload? 初始化时,状态肯定是激活
pageVm.$.__isActive = true
}
......
......@@ -479,7 +479,7 @@ function initPageVm(pageVm, page) {
pageVm.$page = page;
pageVm.$mpType = "page";
if (page.meta.isTabBar) {
pageVm.__isTabBar = true;
pageVm.$.__isTabBar = true;
pageVm.$.__isActive = true;
}
}
......@@ -6741,7 +6741,7 @@ function getCurrentPages$1() {
const curPages = [];
const pages = currentPagesMap.values();
for (const page of pages) {
if (page.__isTabBar) {
if (page.$.__isTabBar) {
if (page.$.__isActive) {
curPages.push(page);
}
......
......@@ -1449,7 +1449,7 @@ function initPageVm(pageVm, page) {
pageVm.$page = page;
pageVm.$mpType = "page";
if (page.meta.isTabBar) {
pageVm.__isTabBar = true;
pageVm.$.__isTabBar = true;
pageVm.$.__isActive = true;
}
}
......@@ -13640,7 +13640,7 @@ function getCurrentPages$1() {
const curPages = [];
const pages = currentPagesMap.values();
for (const page of pages) {
if (page.__isTabBar) {
if (page.$.__isTabBar) {
if (page.$.__isActive) {
curPages.push(page);
}
......@@ -18215,13 +18215,13 @@ function removeNonTabBarPages() {
const keys = pagesMap.keys();
for (const routeKey of keys) {
const page = pagesMap.get(routeKey);
if (!page.__isTabBar) {
if (!page.$.__isTabBar) {
removePage(routeKey);
} else {
page.$.__isActive = false;
}
}
if (curTabBarPageVm.__isTabBar) {
if (curTabBarPageVm.$.__isTabBar) {
curTabBarPageVm.$.__isVisible = false;
invokeHook(curTabBarPageVm, ON_HIDE);
}
......
......@@ -46,7 +46,7 @@ export function getCurrentPages() {
const curPages: ComponentPublicInstance[] = []
const pages = currentPagesMap.values()
for (const page of pages) {
if (page.__isTabBar) {
if (page.$.__isTabBar) {
if (page.$.__isActive) {
curPages.push(page)
}
......
......@@ -20,13 +20,13 @@ function removeNonTabBarPages() {
const keys = pagesMap.keys()
for (const routeKey of keys) {
const page = pagesMap.get(routeKey) as ComponentPublicInstance
if (!page.__isTabBar) {
if (!page.$.__isTabBar) {
removePage(routeKey)
} else {
page.$.__isActive = false
}
}
if (curTabBarPageVm.__isTabBar) {
if (curTabBarPageVm.$.__isTabBar) {
curTabBarPageVm.$.__isVisible = false
invokeHook(curTabBarPageVm, ON_HIDE)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册