From bdaabefc7eea6b4261989321822d9eba019c70ed Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Wed, 21 Jul 2021 15:22:53 +0800 Subject: [PATCH] fix(ssr): requestComponentInfo --- packages/playground/ssr/yarn.lock | 184 +++++++++--------- .../uni-app-plus/dist/uni-app-service.es.js | 55 +++--- .../uni-app-plus/dist/uni-app-view.umd.js | 8 +- .../src/service/framework/app/index.ts | 55 +----- .../src/service/framework/app/vueApp.ts | 51 +++++ .../src/service/framework/page/define.ts | 2 +- .../service/framework/page/getCurrentPages.ts | 2 +- .../framework/webview/init/event/index.ts | 2 +- packages/uni-app/dist/uni-app.es.js | 3 +- packages/uni-app/src/ssr.ts | 3 +- packages/uni-h5/dist/uni-h5.cjs.js | 3 +- packages/uni-h5/dist/uni-h5.es.js | 11 +- .../service/api/ui/requestComponentInfo.ts | 18 +- 13 files changed, 206 insertions(+), 191 deletions(-) create mode 100644 packages/uni-app-plus/src/service/framework/app/vueApp.ts diff --git a/packages/playground/ssr/yarn.lock b/packages/playground/ssr/yarn.lock index 4a529b63d..b0f182d77 100644 --- a/packages/playground/ssr/yarn.lock +++ b/packages/playground/ssr/yarn.lock @@ -2,22 +2,22 @@ # yarn lockfile v1 -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== +"@babel/helper-validator-identifier@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" + integrity sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow== "@babel/parser@^7.12.0", "@babel/parser@^7.13.9": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" - integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz#66fd41666b2d7b840bd5ace7f7416d5ac60208d4" + integrity sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA== "@babel/types@^7.12.0", "@babel/types@^7.13.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.8.tgz#38109de8fcadc06415fbd9b74df0065d4d41c728" + integrity sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q== dependencies: - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.8" to-fast-properties "^2.0.0" "@cypress/request@^2.88.5": @@ -55,10 +55,10 @@ lodash.once "^4.1.1" "@dcloudio/uni-app@../../uni-app": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" "@dcloudio/uni-cli-shared@../../uni-cli-shared": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" dependencies: "@rollup/pluginutils" "^4.1.0" compare-versions "^3.6.0" @@ -72,19 +72,19 @@ xregexp "3.1.0" "@dcloudio/uni-cloud@../../uni-cloud": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" "@dcloudio/uni-components@../../uni-components": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" "@dcloudio/uni-h5-vite@../../uni-h5-vite": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" "@dcloudio/uni-h5-vue@../../uni-h5-vue": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" "@dcloudio/uni-h5@../../uni-h5": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" dependencies: localstorage-polyfill "^1.0.1" pako "^2.0.3" @@ -92,13 +92,13 @@ xmlhttprequest "^1.8.0" "@dcloudio/uni-i18n@../../uni-i18n": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" "@dcloudio/uni-shared@../../uni-shared": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" "@dcloudio/vite-plugin-uni@../../vite-plugin-uni": - version "3.0.0-alpha-3000020210708001" + version "3.0.0-alpha-3000020210720001" dependencies: "@rollup/pluginutils" "^4.1.0" autoprefixer "^10.2.5" @@ -168,9 +168,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "16.3.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.2.tgz#655432817f83b51ac869c2d51dd8305fb8342e16" - integrity sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw== + version "16.4.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.0.tgz#2c219eaa3b8d1e4d04f4dd6e40bc68c7467d5272" + integrity sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg== "@types/node@^14.14.31": version "14.17.5" @@ -199,37 +199,37 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.2.5.tgz#ef7dc4a92e53fe866b54bcc1266788513262ac09" integrity sha512-GIR31mdXTEfvElmBUaRhDc5v7lfdkEdawWQqJRiaRL/5qKsH+xusukglkvJz5y7+c6dEpxgmvcATv2BbB7+fzQ== -"@vue/compiler-core@3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.4.tgz#a3a74cf52e8f01af386d364ac8a099cbeb260424" - integrity sha512-TnUz+1z0y74O/A4YKAbzsdUfamyHV73MihrEfvettWpm9bQKVoZd1nEmR1cGN9LsXWlwAvVQBetBlWdOjmQO5Q== +"@vue/compiler-core@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.5.tgz#298f905b6065d6d81ff63756f98c60876b393c87" + integrity sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q== dependencies: "@babel/parser" "^7.12.0" "@babel/types" "^7.12.0" - "@vue/shared" "3.1.4" + "@vue/shared" "3.1.5" estree-walker "^2.0.1" source-map "^0.6.1" -"@vue/compiler-dom@3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.4.tgz#bf3795e1449f32c965d38c4ea6d808ca05fdfc97" - integrity sha512-3tG2ScHkghhUBuFwl9KgyZhrS8CPFZsO7hUDekJgIp5b1OMkROr4AvxHu6rRMl4WkyvYkvidFNBS2VfOnwa6Kw== +"@vue/compiler-dom@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.5.tgz#cbb97020c62a5faa3fbc2a97916bd98041ac9856" + integrity sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ== dependencies: - "@vue/compiler-core" "3.1.4" - "@vue/shared" "3.1.4" + "@vue/compiler-core" "3.1.5" + "@vue/shared" "3.1.5" "@vue/compiler-sfc@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.4.tgz#93e87db950e0711339c18baa7bb7d28d3522d7bc" - integrity sha512-4KDQg60Khy3SgnF+V/TB2NZqzmM4TyGRmzsxqG1SebGdMSecCweFDSlI/F1vDYk6dKiCHgmpoT9A1sLxswkJ0A== + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.5.tgz#e61e54f3a963b0f4a8e523fbb8632390dc52b0d6" + integrity sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA== dependencies: "@babel/parser" "^7.13.9" "@babel/types" "^7.13.0" "@types/estree" "^0.0.48" - "@vue/compiler-core" "3.1.4" - "@vue/compiler-dom" "3.1.4" - "@vue/compiler-ssr" "3.1.4" - "@vue/shared" "3.1.4" + "@vue/compiler-core" "3.1.5" + "@vue/compiler-dom" "3.1.5" + "@vue/compiler-ssr" "3.1.5" + "@vue/shared" "3.1.5" consolidate "^0.16.0" estree-walker "^2.0.1" hash-sum "^2.0.0" @@ -241,55 +241,55 @@ postcss-selector-parser "^6.0.4" source-map "^0.6.1" -"@vue/compiler-ssr@3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.4.tgz#7f6eaac5b1851fc15c82c083e8179eb1216b303c" - integrity sha512-Box8fCuCFPp0FuimIswjDkjwiSDCBkHvt/xVALyFkYCiIMWv2eR53fIjmlsnEHhcBuZ+VgRC+UanCTcKvSA1gA== +"@vue/compiler-ssr@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.5.tgz#f068652774293256a1e53084bed48a67682df9d2" + integrity sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg== dependencies: - "@vue/compiler-dom" "3.1.4" - "@vue/shared" "3.1.4" + "@vue/compiler-dom" "3.1.5" + "@vue/shared" "3.1.5" "@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.0.0-beta.14": version "6.0.0-beta.15" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.15.tgz#ad7cb384e062f165bcf9c83732125bffbc2ad83d" integrity sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA== -"@vue/reactivity@3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.4.tgz#d926ed46fb0d48582ccf8665b062d37b5d35ba99" - integrity sha512-YDlgii2Cr9yAoKVZFzgY4j0mYlVT73986X3e5SPp6ifqckSEoFSUWXZK2Tb53TB/9qO29BEEbspnKD3m3wAwkA== +"@vue/reactivity@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.5.tgz#dbec4d9557f7c8f25c2635db1e23a78a729eb991" + integrity sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg== dependencies: - "@vue/shared" "3.1.4" + "@vue/shared" "3.1.5" -"@vue/runtime-core@3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.4.tgz#3e30ae6ecbfff06df5adc9414491143191a375ba" - integrity sha512-qmVJgJuFxfT7M4qHQ4M6KqhKC66fjuswK+aBivE8dWiZ2rtIGl9gtJGpwqwjQEcKEBTOfvvrtrwBncYArJUO8Q== +"@vue/runtime-core@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.5.tgz#a545b7f146092929cb5e833e85439150f17ac87b" + integrity sha512-YQbG5cBktN1RowQDKA22itmvQ+b40f0WgQ6CXK4VYoYICAiAfu6Cc14777ve8zp1rJRGtk5oIeS149TOculrTg== dependencies: - "@vue/reactivity" "3.1.4" - "@vue/shared" "3.1.4" + "@vue/reactivity" "3.1.5" + "@vue/shared" "3.1.5" -"@vue/runtime-dom@3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.4.tgz#acfeee200d5c45fc2cbdf7058cda1498f9b45849" - integrity sha512-vbmwgTxku1BU87Kw7r29adv0OIrDXCW0PslOPQT0O/9R5SqcXgS94Yj6zsztDjvghegenwIAPNLlDR1Auh5s+w== +"@vue/runtime-dom@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.5.tgz#4fa28947d408aa368fa17ea0edc1beb9af1472a1" + integrity sha512-tNcf3JhVR0RfW0kw1p8xZgv30nvX8Y9rsz7eiQ0dHe273sfoCngAG0y4GvMaY4Xd8FsjUwFedd4suQ8Lu8meXg== dependencies: - "@vue/runtime-core" "3.1.4" - "@vue/shared" "3.1.4" + "@vue/runtime-core" "3.1.5" + "@vue/shared" "3.1.5" csstype "^2.6.8" "@vue/server-renderer@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.1.4.tgz#2b8762c8958a522870f158b1865e8191365f4e3e" - integrity sha512-STyvZLeoQwljTMqA94Zmlo20AEBOdF57nuIz0tw+fsJvkmLt3R9HEngvHPmB0Aht9XnVP9h7oG61/5luhsbfDA== + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.1.5.tgz#905454eccbb97bb8daafc5db6eec83c452062648" + integrity sha512-b0LLsxwsVIFGNgAHXVT/1iHbPf+uNMdFOz7xUT2tKKIkHN4ps8fAaj1GTSYLhxaPi9ALjxRmWRdvMC69fAW1/A== dependencies: - "@vue/compiler-ssr" "3.1.4" - "@vue/shared" "3.1.4" + "@vue/compiler-ssr" "3.1.5" + "@vue/shared" "3.1.5" -"@vue/shared@3.1.4", "@vue/shared@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.4.tgz#c14c461ec42ea2c1556e86f60b0354341d91adc3" - integrity sha512-6O45kZAmkLvzGLToBxEz4lR2W6kXohCtebV2UxjH9GXjd8X9AhEn68FN9eNanFtWNzvgw1hqd6HkPRVQalqf7Q== +"@vue/shared@3.1.5", "@vue/shared@^3.1.4": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.5.tgz#74ee3aad995d0a3996a6bb9533d4d280514ede03" + integrity sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA== accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" @@ -505,9 +505,9 @@ cachedir@^2.3.0: integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001243: - version "1.0.30001245" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz#45b941bbd833cb0fa53861ff2bae746b3c6ca5d4" - integrity sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA== + version "1.0.30001246" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz#fe17d9919f87124d6bb416ef7b325356d69dc76c" + integrity sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA== caseless@~0.12.0: version "0.12.0" @@ -800,9 +800,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.723: - version "1.3.778" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.778.tgz#bf01048736c95b78f2988e88005e0ebb385942a4" - integrity sha512-Lw04qJaPtWdq0d7qKHJTgkam+FhFi3hm/scf1EyqJWdjO3ZIGUJhNmZJRXWb7yb/bRYXQyVGSpa9RqVpjjWMQw== + version "1.3.782" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.782.tgz#522740fe6b4b5255ca754c68d9c406a17b0998e2" + integrity sha512-6AI2se1NqWA1SBf/tlD6tQD/6ZOt+yAhqmrTlh4XZw4/g0Mt3p6JhTQPZxRPxPZiOg0o7ss1EBP/CpYejfnoIA== emoji-regex@^8.0.0: version "8.0.0" @@ -1913,9 +1913,9 @@ rollup-plugin-copy@^3.4.0: is-plain-object "^3.0.0" rollup@^2.38.5: - version "2.53.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.53.2.tgz#3279f9bfba1fe446585560802e418c5fbcaefa51" - integrity sha512-1CtEYuS5CRCzFZ7SNW5528SlDlk4VDXIRGwbm/2POQxA/G4+7/crIqJwkmnj8Q/74hGx4oVlNvh4E1CJQ5hZ6w== + version "2.53.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.53.3.tgz#14b0e57f0874d4ad23bdbb13050cf70bcd1eabf7" + integrity sha512-79QIGP5DXz5ZHYnCPi3tLz+elOQi6gudp9YINdaJdjG0Yddubo6JRFUM//qCZ0Bap/GJrsUoEBVdSOc4AkMlRA== optionalDependencies: fsevents "~2.3.2" @@ -2244,9 +2244,9 @@ verror@1.10.0: extsprintf "^1.2.0" vite@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.4.2.tgz#07d00615775c808530bc9f65641062b349b67929" - integrity sha512-2MifxD2I9fjyDmmEzbULOo3kOUoqX90A58cT6mECxoVQlMYFuijZsPQBuA14mqSwvV3ydUsqnq+BRWXyO9Qa+w== + version "2.4.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.4.3.tgz#fe4aa78e9dd7d36bcb12eccbd52313b26cfadf77" + integrity sha512-iT6NPeiUUZ2FkzC3eazytOEMRaM4J+xgRQcNcpRcbmfYjakCFP4WKPJpeEz1U5JEKHAtwv3ZBQketQUFhFU3ng== dependencies: esbuild "^0.12.8" postcss "^8.3.5" @@ -2263,13 +2263,13 @@ vue-router@^4.0.10: "@vue/devtools-api" "^6.0.0-beta.14" vue@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.4.tgz#120d6818c51eaa35d0879e5bc1cff60135bc69fd" - integrity sha512-p8dcdyeCgmaAiZsbLyDkmOLcFGZb/jEVdCLW65V68LRCXTNX8jKsgah2F7OZ/v/Ai2V0Fb1MNO0vz/GFqsPVMA== + version "3.1.5" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.5.tgz#12879b11d0685ee4478c8869551799630a52f9fe" + integrity sha512-Ho7HNb1nfDoO+HVb6qYZgeaobt1XbY6KXFe4HGs1b9X6RhkWG/113n4/SrtM1LUclM6OrP/Se5aPHHvAPG1iVQ== dependencies: - "@vue/compiler-dom" "3.1.4" - "@vue/runtime-dom" "3.1.4" - "@vue/shared" "3.1.4" + "@vue/compiler-dom" "3.1.5" + "@vue/runtime-dom" "3.1.5" + "@vue/shared" "3.1.5" vuex@^4.0.2: version "4.0.2" 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 1650e09d8..49efedf37 100644 --- a/packages/uni-app-plus/dist/uni-app-service.es.js +++ b/packages/uni-app-plus/dist/uni-app-service.es.js @@ -9034,6 +9034,33 @@ var serviceContext = (function (vue) { plus.navigator.setStatusBarStyle(statusBarStyle); } + let vueApp; + function getVueApp() { + return vueApp; + } + function initVueApp(appVm) { + const appContext = appVm.$.appContext; + vueApp = extend(appContext.app, { + mountPage(pageComponent, pageProps, pageContainer) { + const vnode = vue.createVNode(pageComponent, pageProps); + // store app context on the root VNode. + // this will be set on the root instance on initial mount. + vnode.appContext = appContext; + vue.render(vnode, pageContainer); + const publicThis = vnode.component.proxy; + publicThis.__page_container__ = pageContainer; + return publicThis; + }, + unmountPage: (pageInstance) => { + const { __page_container__ } = pageInstance; + if (__page_container__) { + __page_container__.isUnmounted = true; + vue.render(null, __page_container__); + } + }, + }); + } + const pages = []; function addCurrentPage(page) { pages.push(page); @@ -9259,37 +9286,11 @@ var serviceContext = (function (vue) { } console.error('[warn]: getApp() failed. Learn more: https://uniapp.dcloud.io/collocation/frame/window?id=getapp.'); } - let vueApp; - function getVueApp() { - return vueApp; - } - function initVueApp(appVm) { - const appContext = appVm.$.appContext; - return extend(appContext.app, { - mountPage(pageComponent, pageProps, pageContainer) { - const vnode = vue.createVNode(pageComponent, pageProps); - // store app context on the root VNode. - // this will be set on the root instance on initial mount. - vnode.appContext = appContext; - vue.render(vnode, pageContainer); - const publicThis = vnode.component.proxy; - publicThis.__page_container__ = pageContainer; - return publicThis; - }, - unmountPage: (pageInstance) => { - const { __page_container__ } = pageInstance; - if (__page_container__) { - __page_container__.isUnmounted = true; - vue.render(null, __page_container__); - } - }, - }); - } function registerApp(appVm) { if ((process.env.NODE_ENV !== 'production')) { console.log(formatLog('registerApp')); } - vueApp = initVueApp(appVm); + initVueApp(appVm); appCtx = appVm; initAppVm(appCtx); extend(appCtx, defaultApp); // 拷贝默认实现 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 0224b3b67..daf313bea 100644 --- a/packages/uni-app-plus/dist/uni-app-view.umd.js +++ b/packages/uni-app-plus/dist/uni-app-view.umd.js @@ -15538,21 +15538,23 @@ var __publicField = (obj, key, value) => { if (!parentElement) { return single ? null : []; } + const { nodeType } = selfElement; + const maybeFragment = nodeType === 3 || nodeType === 8; if (single) { - const node = selfElement.nodeType === 3 ? parentElement.querySelector(selector) : matches(selfElement, selector) ? selfElement : selfElement.querySelector(selector); + const node = maybeFragment ? parentElement.querySelector(selector) : matches(selfElement, selector) ? selfElement : selfElement.querySelector(selector); if (node) { return getNodeInfo(node, fields); } return null; } else { let infos = []; - const nodeList = (selfElement.nodeType === 3 ? parentElement : selfElement).querySelectorAll(selector); + const nodeList = (maybeFragment ? parentElement : selfElement).querySelectorAll(selector); if (nodeList && nodeList.length) { [].forEach.call(nodeList, (node) => { infos.push(getNodeInfo(node, fields)); }); } - if (selfElement.nodeType !== 3 && matches(selfElement, selector)) { + if (!maybeFragment && matches(selfElement, selector)) { infos.unshift(getNodeInfo(selfElement, fields)); } return infos; diff --git a/packages/uni-app-plus/src/service/framework/app/index.ts b/packages/uni-app-plus/src/service/framework/app/index.ts index d21a4e356..43ce577f1 100644 --- a/packages/uni-app-plus/src/service/framework/app/index.ts +++ b/packages/uni-app-plus/src/service/framework/app/index.ts @@ -1,12 +1,6 @@ -import { - App, - ComponentPublicInstance, - ConcreteComponent, - createVNode, - render, -} from 'vue' +import { ComponentPublicInstance } from 'vue' import { extend } from '@vue/shared' -import { formatLog, UniNode } from '@dcloudio/uni-shared' +import { formatLog } from '@dcloudio/uni-shared' import { initAppVm, initService } from '@dcloudio/uni-core' import { initEntry } from './initEntry' @@ -15,6 +9,7 @@ import { initGlobalEvent } from './initGlobalEvent' import { initAppLaunch } from './initAppLaunch' import { clearTempFile } from './clearTempFile' import { initSubscribeHandlers } from './subscriber' +import { initVueApp } from './vueApp' let appCtx: ComponentPublicInstance const defaultApp = { @@ -35,54 +30,12 @@ export function getApp({ allowDefault = false } = {}) { ) } -interface VueApp extends App { - mountPage: ( - pageComponent: ConcreteComponent, - pageProps: Record, - pageContainer: UniNode - ) => ComponentPublicInstance - unmountPage: (pageInstance: ComponentPublicInstance) => void -} - -let vueApp: VueApp - -export function getVueApp() { - return vueApp -} - -function initVueApp(appVm: ComponentPublicInstance) { - const appContext = appVm.$.appContext - return extend(appContext.app, { - mountPage( - pageComponent: ConcreteComponent, - pageProps: Record, - pageContainer: UniNode - ) { - const vnode = createVNode(pageComponent, pageProps) - // store app context on the root VNode. - // this will be set on the root instance on initial mount. - vnode.appContext = appContext - render(vnode, pageContainer as unknown as Element) - const publicThis = vnode.component!.proxy! - ;(publicThis as any).__page_container__ = pageContainer - return publicThis - }, - unmountPage: (pageInstance: ComponentPublicInstance) => { - const { __page_container__ } = pageInstance as any - if (__page_container__) { - __page_container__.isUnmounted = true - render(null, __page_container__) - } - }, - }) -} - export function registerApp(appVm: ComponentPublicInstance) { if (__DEV__) { console.log(formatLog('registerApp')) } - vueApp = initVueApp(appVm) + initVueApp(appVm) appCtx = appVm initAppVm(appCtx) diff --git a/packages/uni-app-plus/src/service/framework/app/vueApp.ts b/packages/uni-app-plus/src/service/framework/app/vueApp.ts new file mode 100644 index 000000000..6ae0fed3e --- /dev/null +++ b/packages/uni-app-plus/src/service/framework/app/vueApp.ts @@ -0,0 +1,51 @@ +import { extend } from '@vue/shared' +import { UniNode } from '@dcloudio/uni-shared' +import { + App, + createVNode, + render, + ConcreteComponent, + ComponentPublicInstance, +} from 'vue' + +interface VueApp extends App { + mountPage: ( + pageComponent: ConcreteComponent, + pageProps: Record, + pageContainer: UniNode + ) => ComponentPublicInstance + unmountPage: (pageInstance: ComponentPublicInstance) => void +} + +let vueApp: VueApp + +export function getVueApp() { + return vueApp +} + +export function initVueApp(appVm: ComponentPublicInstance) { + const appContext = appVm.$.appContext + vueApp = extend(appContext.app, { + mountPage( + pageComponent: ConcreteComponent, + pageProps: Record, + pageContainer: UniNode + ) { + const vnode = createVNode(pageComponent, pageProps) + // store app context on the root VNode. + // this will be set on the root instance on initial mount. + vnode.appContext = appContext + render(vnode, pageContainer as unknown as Element) + const publicThis = vnode.component!.proxy! + ;(publicThis as any).__page_container__ = pageContainer + return publicThis + }, + unmountPage: (pageInstance: ComponentPublicInstance) => { + const { __page_container__ } = pageInstance as any + if (__page_container__) { + __page_container__.isUnmounted = true + render(null, __page_container__) + } + }, + }) +} 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 b95734bcc..d23008b41 100644 --- a/packages/uni-app-plus/src/service/framework/page/define.ts +++ b/packages/uni-app-plus/src/service/framework/page/define.ts @@ -4,7 +4,7 @@ import { DefineComponent } from 'vue' import { createPageNode } from '../dom/Page' import { setupPage } from './setup' import __vuePlugin from '../plugin' -import { getVueApp } from '../app' +import { getVueApp } from '../app/vueApp' export type VuePageComponent = DefineComponent diff --git a/packages/uni-app-plus/src/service/framework/page/getCurrentPages.ts b/packages/uni-app-plus/src/service/framework/page/getCurrentPages.ts index 6fe409715..947da9357 100644 --- a/packages/uni-app-plus/src/service/framework/page/getCurrentPages.ts +++ b/packages/uni-app-plus/src/service/framework/page/getCurrentPages.ts @@ -1,7 +1,7 @@ import { getCurrentPage } from '@dcloudio/uni-core' import { formatLog } from '@dcloudio/uni-shared' import { ComponentPublicInstance } from 'vue' -import { getVueApp } from '../app' +import { getVueApp } from '../app/vueApp' const pages: ComponentPublicInstance[] = [] diff --git a/packages/uni-app-plus/src/service/framework/webview/init/event/index.ts b/packages/uni-app-plus/src/service/framework/webview/init/event/index.ts index 766a32277..c44af8d57 100644 --- a/packages/uni-app-plus/src/service/framework/webview/init/event/index.ts +++ b/packages/uni-app-plus/src/service/framework/webview/init/event/index.ts @@ -6,7 +6,7 @@ import { ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PULL_DOWN_REFRESH, } from '@dcloudio/uni-shared' -import { setPullDownRefreshWebview } from 'packages/uni-app-plus/src/service/utils' +import { setPullDownRefreshWebview } from '../../../../utils' import { onWebviewClose } from './close' import { onWebviewPopGesture } from './popGesture' import { onWebviewResize } from './resize' diff --git a/packages/uni-app/dist/uni-app.es.js b/packages/uni-app/dist/uni-app.es.js index 8e81d8347..64a5f3ab8 100644 --- a/packages/uni-app/dist/uni-app.es.js +++ b/packages/uni-app/dist/uni-app.es.js @@ -43,7 +43,8 @@ function assertKey(key, shallow = false) { } const ssrClientRef = (value, key, shallow = false) => { const valRef = shallow ? shallowRef(value) : ref(value); - if (__PLATFORM__ !== 'h5') { + // 非 h5 平台 + if (typeof window === 'undefined') { return valRef; } const __uniSSR = window[UNI_SSR]; diff --git a/packages/uni-app/src/ssr.ts b/packages/uni-app/src/ssr.ts index 903d570b2..9428e20d4 100644 --- a/packages/uni-app/src/ssr.ts +++ b/packages/uni-app/src/ssr.ts @@ -33,7 +33,8 @@ function assertKey(key?: string, shallow = false) { const ssrClientRef: SSRRef = (value, key, shallow = false) => { const valRef = shallow ? shallowRef(value) : ref(value) - if (__PLATFORM__ !== 'h5') { + // 非 h5 平台 + if (typeof window === 'undefined') { return valRef } const __uniSSR = (window as any)[UNI_SSR] diff --git a/packages/uni-h5/dist/uni-h5.cjs.js b/packages/uni-h5/dist/uni-h5.cjs.js index 07f30eab4..09232222c 100644 --- a/packages/uni-h5/dist/uni-h5.cjs.js +++ b/packages/uni-h5/dist/uni-h5.cjs.js @@ -496,7 +496,8 @@ function initPageInternalInstance(openType, url, pageQuery, meta) { fullPath: url, options: pageQuery, meta, - openType + openType, + statusBarStyle: meta.navigationBar.titleColor === "#000000" ? "dark" : "light" }; } function invokeHook(vm, name, args) { diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index 497ec952e..a89cc5459 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -925,7 +925,8 @@ function initPageInternalInstance(openType, url, pageQuery, meta) { fullPath: url, options: pageQuery, meta, - openType + openType, + statusBarStyle: meta.navigationBar.titleColor === "#000000" ? "dark" : "light" }; } function invokeHook(vm, name, args) { @@ -2088,21 +2089,23 @@ function getNodesInfo(pageVm, component, selector, single, fields2) { if (!parentElement) { return single ? null : []; } + const { nodeType } = selfElement; + const maybeFragment = nodeType === 3 || nodeType === 8; if (single) { - const node = selfElement.nodeType === 3 ? parentElement.querySelector(selector) : matches(selfElement, selector) ? selfElement : selfElement.querySelector(selector); + const node = maybeFragment ? parentElement.querySelector(selector) : matches(selfElement, selector) ? selfElement : selfElement.querySelector(selector); if (node) { return getNodeInfo(node, fields2); } return null; } else { let infos = []; - const nodeList = (selfElement.nodeType === 3 ? parentElement : selfElement).querySelectorAll(selector); + const nodeList = (maybeFragment ? parentElement : selfElement).querySelectorAll(selector); if (nodeList && nodeList.length) { [].forEach.call(nodeList, (node) => { infos.push(getNodeInfo(node, fields2)); }); } - if (selfElement.nodeType !== 3 && matches(selfElement, selector)) { + if (!maybeFragment && matches(selfElement, selector)) { infos.unshift(getNodeInfo(selfElement, fields2)); } return infos; diff --git a/packages/uni-h5/src/service/api/ui/requestComponentInfo.ts b/packages/uni-h5/src/service/api/ui/requestComponentInfo.ts index dea7e0ed4..cd5035914 100644 --- a/packages/uni-h5/src/service/api/ui/requestComponentInfo.ts +++ b/packages/uni-h5/src/service/api/ui/requestComponentInfo.ts @@ -151,13 +151,15 @@ function getNodesInfo( return single ? null : [] } // 使用片段时从父元素查找,会超出当前组件范围 + const { nodeType } = selfElement + // ssr 时,可能为8 + const maybeFragment = nodeType === 3 || nodeType === 8 if (single) { - const node = - selfElement.nodeType === 3 - ? (parentElement.querySelector(selector) as HTMLElement) - : matches(selfElement, selector) - ? selfElement - : (selfElement.querySelector(selector) as HTMLElement) + const node = maybeFragment + ? (parentElement.querySelector(selector) as HTMLElement) + : matches(selfElement, selector) + ? selfElement + : (selfElement.querySelector(selector) as HTMLElement) if (node) { return getNodeInfo(node, fields) } @@ -165,14 +167,14 @@ function getNodesInfo( } else { let infos: SelectorQueryNodeInfo[] = [] const nodeList = ( - selfElement.nodeType === 3 ? parentElement : selfElement + maybeFragment ? parentElement : selfElement ).querySelectorAll(selector) if (nodeList && nodeList.length) { ;[].forEach.call(nodeList, (node) => { infos.push(getNodeInfo(node, fields)) }) } - if (selfElement.nodeType !== 3 && matches(selfElement, selector)) { + if (!maybeFragment && matches(selfElement, selector)) { infos.unshift(getNodeInfo(selfElement, fields)) } return infos -- GitLab