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

fix(ssr): requestComponentInfo

上级 eeeb2da4
......@@ -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"
......
......@@ -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); // 拷贝默认实现
......
......@@ -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;
......
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<string, any>,
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<string, any>,
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)
......
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<string, any>,
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<string, any>,
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__)
}
},
})
}
......@@ -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<PageProps>
......
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[] = []
......
......@@ -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'
......
......@@ -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];
......
......@@ -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]
......
......@@ -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) {
......
......@@ -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;
......
......@@ -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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册