diff --git a/packages/shims-vue-runtime.d.ts b/packages/shims-vue-runtime.d.ts index 2c31c68981cdb02635d44eded5ca53ae59703437..801550c7d2451181bc5b1d2b07da85b1d6623372 100644 --- a/packages/shims-vue-runtime.d.ts +++ b/packages/shims-vue-runtime.d.ts @@ -22,7 +22,6 @@ declare module '@vue/runtime-core' { __isUnload: boolean __isVisible: boolean __isActive?: boolean // tabBar - __isPage: boolean } export const callSyncHook: ( diff --git a/packages/uni-app-plus/dist/uni-app-service.es.js b/packages/uni-app-plus/dist/uni-app-service.es.js index 2f16bdaca9baabf87553e5c94ccd9c4e4680471b..d14d13eb39cc2b72dca6fee1395165112672ce41 100644 --- a/packages/uni-app-plus/dist/uni-app-service.es.js +++ b/packages/uni-app-plus/dist/uni-app-service.es.js @@ -1808,7 +1808,11 @@ var serviceContext = (function (vue) { pageVm.$vm = pageVm; pageVm.$page = page; pageVm.$mpType = 'page'; - pageVm.__isTabBar = page.meta.isTabBar; + if (page.meta.isTabBar) { + pageVm.__isTabBar = true; + // TODO preload? 初始化时,状态肯定是激活 + pageVm.$.__isActive = true; + } } function querySelector(vm, selector) { @@ -9544,6 +9548,7 @@ var serviceContext = (function (vue) { } function createPage(__pageId, __pagePath, __pageQuery, __pageInstance, pageOptions) { const pageNode = createPageNode(__pageId, pageOptions, true); + // TODO 需要同步 main.js 中开发者设置的plugin,mixin,config等 const app = vue.createApp(pagesMap.get(__pagePath)(), { __pageId, __pagePath, diff --git a/packages/uni-app-plus/dist/uni-app-view.umd.js b/packages/uni-app-plus/dist/uni-app-view.umd.js index 9600b987c02cd887b34fb6231b1d174d7d9499d3..9fb18524645dda03538affe1de659629dd29a6fb 100644 --- a/packages/uni-app-plus/dist/uni-app-view.umd.js +++ b/packages/uni-app-plus/dist/uni-app-view.umd.js @@ -8968,7 +8968,7 @@ if (scopeId) { state.attrs[scopeId] = ""; } - instance = instance.__isPage ? null : instance.parent; + instance = instance.proxy && instance.proxy.$mpType === "page" ? null : instance.parent; } }); return { diff --git a/packages/uni-app-plus/src/service/framework/page/define.ts b/packages/uni-app-plus/src/service/framework/page/define.ts index 90a6cfddd612ee66da38f79f60fb1189fe754cb8..0d194728f2022725b406b43c8a77aa8d91a280e2 100644 --- a/packages/uni-app-plus/src/service/framework/page/define.ts +++ b/packages/uni-app-plus/src/service/framework/page/define.ts @@ -27,6 +27,7 @@ export function createPage( pageOptions: PageNodeOptions ) { const pageNode = createPageNode(__pageId, pageOptions, true) + // TODO 需要同步 main.js 中开发者设置的plugin,mixin,config等 const app = createApp(pagesMap.get(__pagePath)!(), { __pageId, __pagePath, diff --git a/packages/uni-components/src/helpers/useScopedAttrs.ts b/packages/uni-components/src/helpers/useScopedAttrs.ts index e84e0eacc6c61eb97b3cd955e7e256a42ef5680d..6ae6070b991ce755c38cf2069a29233442c2dfd0 100644 --- a/packages/uni-components/src/helpers/useScopedAttrs.ts +++ b/packages/uni-components/src/helpers/useScopedAttrs.ts @@ -1,9 +1,4 @@ -import { - onMounted, - getCurrentInstance, - ComponentInternalInstance, - reactive, -} from 'vue' +import { onMounted, getCurrentInstance, reactive } from 'vue' interface State { attrs: Record @@ -20,7 +15,10 @@ export function useScopedAttrs() { if (scopeId) { state.attrs[scopeId] = '' } - instance = instance.__isPage ? null : instance.parent + instance = + instance.proxy && instance.proxy.$mpType === 'page' + ? null + : instance.parent } }) diff --git a/packages/uni-core/src/service/init/index.ts b/packages/uni-core/src/service/init/index.ts index 1fac904f2d9869aac4748e49d782c8e985b8fcdd..28f3959e7104f612cf9d240146e5c5737d52fd9f 100644 --- a/packages/uni-core/src/service/init/index.ts +++ b/packages/uni-core/src/service/init/index.ts @@ -23,5 +23,9 @@ export function initPageVm( pageVm.$vm = pageVm pageVm.$page = page pageVm.$mpType = 'page' - pageVm.__isTabBar = page.meta.isTabBar! + if (page.meta.isTabBar) { + pageVm.__isTabBar = true + // TODO preload? 初始化时,状态肯定是激活 + pageVm.$.__isActive = true + } } diff --git a/packages/uni-h5/dist/uni-h5.cjs.js b/packages/uni-h5/dist/uni-h5.cjs.js index bd97787b4bb10f90f3f0e0243fe5bfbfd2553469..4f6b09a7dda6ab2822c284ba8d97911df56453fb 100644 --- a/packages/uni-h5/dist/uni-h5.cjs.js +++ b/packages/uni-h5/dist/uni-h5.cjs.js @@ -612,7 +612,10 @@ function initPageVm(pageVm, page) { pageVm.$vm = pageVm; pageVm.$page = page; pageVm.$mpType = "page"; - pageVm.__isTabBar = page.meta.isTabBar; + if (page.meta.isTabBar) { + pageVm.__isTabBar = true; + pageVm.$.__isActive = true; + } } function converPx(value) { if (/^-?\d+[ur]px$/i.test(value)) { @@ -1331,8 +1334,11 @@ function beforeInvokeApi(name, args, protocol, options) { } } function normalizeErrMsg(errMsg) { - if (errMsg instanceof Error) { - console.error(errMsg); + if (shared.isString(errMsg)) { + return errMsg; + } + if (errMsg.stack) { + console.error(errMsg.message + "\n" + errMsg.stack); return errMsg.message; } return errMsg; @@ -6829,12 +6835,8 @@ function setupPage(comp) { return setupComponent(comp, { init: initPage, setup(instance) { - instance.__isPage = true; instance.root = instance; const route = usePageRoute(); - if (route.meta.isTabBar) { - instance.__isActive = true; - } { return route.query; } diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index d20799e9d9810fd5d705a6e3cca09aabe1c3ece1..03370a72d7203c6ffe7bae96f6d8e229e8ade2d7 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -1382,7 +1382,10 @@ function initPageVm(pageVm, page) { pageVm.$vm = pageVm; pageVm.$page = page; pageVm.$mpType = "page"; - pageVm.__isTabBar = page.meta.isTabBar; + if (page.meta.isTabBar) { + pageVm.__isTabBar = true; + pageVm.$.__isActive = true; + } } function querySelector(vm, selector) { const el = vm.$el.querySelector(selector); @@ -2492,8 +2495,11 @@ function wrapperOffApi(name, fn, options) { }; } function normalizeErrMsg(errMsg) { - if (errMsg instanceof Error) { - console.error(errMsg); + if (isString(errMsg)) { + return errMsg; + } + if (errMsg.stack) { + console.error(errMsg.message + "\n" + errMsg.stack); return errMsg.message; } return errMsg; @@ -7860,7 +7866,7 @@ function useScopedAttrs() { if (scopeId) { state2.attrs[scopeId] = ""; } - instance2 = instance2.__isPage ? null : instance2.parent; + instance2 = instance2.proxy && instance2.proxy.$mpType === "page" ? null : instance2.parent; } }); return { @@ -13496,12 +13502,8 @@ function setupPage(comp) { return setupComponent(comp, { init: initPage, setup(instance2) { - instance2.__isPage = true; instance2.root = instance2; const route = usePageRoute(); - if (route.meta.isTabBar) { - instance2.__isActive = true; - } const pageMeta = usePageMeta(); onBeforeMount(() => { onPageShow(instance2, pageMeta); diff --git a/packages/uni-h5/src/framework/setup/index.ts b/packages/uni-h5/src/framework/setup/index.ts index 3041ca52fd0f8d394e850d6d1af17fc78798fef5..e74f0c9b55f1f2c3520fe9bcc907c2b07ae60c4a 100644 --- a/packages/uni-h5/src/framework/setup/index.ts +++ b/packages/uni-h5/src/framework/setup/index.ts @@ -53,13 +53,8 @@ export function setupPage(comp: any) { return setupComponent(comp, { init: initPage, setup(instance) { - instance.__isPage = true // 标记当前组件是页面 instance.root = instance // 组件root指向页面 const route = usePageRoute() - if (route.meta.isTabBar) { - //初始化时,状态肯定是激活 - instance.__isActive = true - } // node环境不触发Page生命周期 if (__NODE_JS__) { return route.query diff --git a/packages/vite-plugin-uni/src/config/define.ts b/packages/vite-plugin-uni/src/config/define.ts index 9bea35f9321756fa7e46d549970598f6a01181fb..fa2970a26d9fe663ed0a12301fda00c3e4297220 100644 --- a/packages/vite-plugin-uni/src/config/define.ts +++ b/packages/vite-plugin-uni/src/config/define.ts @@ -5,6 +5,7 @@ export function createDefine({ platform, }: VitePluginUniResolvedOptions): UserConfig['define'] { return { + __VUE_PROD_DEVTOOLS__: false, 'process.env.UNI_PLATFORM': JSON.stringify(platform), } }