From 9e80adb9ab46e44f3fc48fa88b302dd01e636c3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 13:34:24 +0200 Subject: [PATCH 01/36] chore(deps): bump vue from 3.5.0-beta.1 to 3.5.0-beta.2 (#2972) Bumps [vue](https://github.com/vuejs/core) from 3.5.0-beta.1 to 3.5.0-beta.2. - [Release notes](https://github.com/vuejs/core/releases) - [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md) - [Commits](https://github.com/vuejs/core/compare/v3.5.0-beta.1...v3.5.0-beta.2) --- updated-dependencies: - dependency-name: vue dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 164 +++++++++++++++++++++++++------------------------ 1 file changed, 84 insertions(+), 80 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c4d1138b..0bbcf58b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 4.3.1 '@vue/theme': specifier: ^2.2.12 - version: 2.2.12(@algolia/client-search@4.23.3)(search-insights@2.14.0)(vitepress@1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.40)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5))(vue@3.5.0-beta.1(typescript@5.4.5)) + version: 2.2.12(@algolia/client-search@4.23.3)(search-insights@2.14.0)(vitepress@1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.41)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5))(vue@3.5.0-beta.2(typescript@5.4.5)) dynamics.js: specifier: ^1.1.5 version: 1.1.5 @@ -22,10 +22,10 @@ importers: version: 3.12.5 vitepress: specifier: ^1.3.2 - version: 1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.40)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5) + version: 1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.41)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5) vue: specifier: ^3.5.0-beta.1 - version: 3.5.0-beta.1(typescript@5.4.5) + version: 3.5.0-beta.2(typescript@5.4.5) devDependencies: '@types/body-scroll-lock': specifier: ^3.1.2 @@ -461,26 +461,26 @@ packages: '@vue/compiler-core@3.4.35': resolution: {integrity: sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg==} - '@vue/compiler-core@3.5.0-beta.1': - resolution: {integrity: sha512-MLP2yH21NFnVn+WhUsrRFR+wwXuBWHQ4YmXou1zVaXSfwqwGonf0KC7FBbXz3RbqPH0v2yksWpZFJYnTY++yNQ==} + '@vue/compiler-core@3.5.0-beta.2': + resolution: {integrity: sha512-cfvCjyBTBeQySzqbOppYTJ8D+baADX5GOWyQKEYnszqAamkczvGZk7OF/4adeXwxZ96JqpNhqhf6JCEnjRnaxg==} '@vue/compiler-dom@3.4.35': resolution: {integrity: sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ==} - '@vue/compiler-dom@3.5.0-beta.1': - resolution: {integrity: sha512-DAC/58eo5XlYdrUXRIf3eWDMbKWM1I85bQfIRIqt7vCE2a2yGmx2LIyI/BEio4uI1Sdf/g16kOzk3BDmFkr1GA==} + '@vue/compiler-dom@3.5.0-beta.2': + resolution: {integrity: sha512-k9ZIN2CeHFjxNG1rV7C50yKcT17eHakyc/vb45NdvP4p834V8NT4H+/UXGwCWWGQ9ylC/eN7PRm7GsP67iQj3Q==} '@vue/compiler-sfc@3.4.35': resolution: {integrity: sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA==} - '@vue/compiler-sfc@3.5.0-beta.1': - resolution: {integrity: sha512-0139cGju9//Wpm90rtwDy6+/1s61Ba04Mn8+X1Xgo6D9xR3h7yLmgHU7OvG9Mh3LwtlB0sQIUeYZMvF995r4ww==} + '@vue/compiler-sfc@3.5.0-beta.2': + resolution: {integrity: sha512-ETuARiO/+FJo9CDxEigOS4UT5XghsjnnXZ/CBtYxDpx55KK805isKwx3PCgUeIjFpMDrGqlh1JyWfyh7rKMr0w==} '@vue/compiler-ssr@3.4.35': resolution: {integrity: sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A==} - '@vue/compiler-ssr@3.5.0-beta.1': - resolution: {integrity: sha512-aC58zZiLS//lqH6DdOPicv5crn8uSkBMilpGR1lKISViI09n5Gz0Ov0c35lYiVk9WifshTXU+BPQut3huKYySA==} + '@vue/compiler-ssr@3.5.0-beta.2': + resolution: {integrity: sha512-pVGG2OrU2UvMaJ5DvWWZoJFkGIRql6Gg3VCcrmOAdaSxom9mymtJJ5kcr+P55qK2CTnhVDom84WM1gbvAX8CIw==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -505,8 +505,8 @@ packages: '@vue/reactivity@3.4.35': resolution: {integrity: sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw==} - '@vue/reactivity@3.5.0-beta.1': - resolution: {integrity: sha512-3dBZPdQxGcVCgeJv9KlGuK8a++PUj+OAJ8U89h+77SHMDAKXpLLjnpL+VfreAl37Z39ye4AJyfeYvaXV7fdlcA==} + '@vue/reactivity@3.5.0-beta.2': + resolution: {integrity: sha512-/OMAO+vGHfPAPvofdW9lRJEBNBoLt6vpRYS4TMbbz+wMgQQ23vvOvp6W8s0pkcSsw0mm697Z3WDz1ZZhUW/NzA==} '@vue/repl@4.3.1': resolution: {integrity: sha512-yzUuLhR+MqOGBDES+xbnm27SfPIEv7XKwhFWWpQhL7HUbXj77GVu+x50Q56JhCWWKTUJzk9MOvAn7bSgdvB5og==} @@ -514,30 +514,30 @@ packages: '@vue/runtime-core@3.4.35': resolution: {integrity: sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA==} - '@vue/runtime-core@3.5.0-beta.1': - resolution: {integrity: sha512-j+ivXaIRSZbJJGf9ZZpcf+4vqM3DC3AMgmoRrQ8DJExYIU6mvpkSNUfPRBw3QROoD7BjcuImRN6Ia2QxnlwDfw==} + '@vue/runtime-core@3.5.0-beta.2': + resolution: {integrity: sha512-eH01kEFxsOEwbti/KoSy35orEeEvn8G4HYMhBA0zpYZnZluF2G4EEoVrzz1WhXdton8DTi6/HtY3J0DSN6/NeQ==} '@vue/runtime-dom@3.4.35': resolution: {integrity: sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw==} - '@vue/runtime-dom@3.5.0-beta.1': - resolution: {integrity: sha512-16xac1YVuQtSsIQsY+94fHlg9QsQOxIZrr66kcHXYN9bSA8SqrTmA6JpfdwQfp+xQMVyRt+xb/K1c8plec9rxQ==} + '@vue/runtime-dom@3.5.0-beta.2': + resolution: {integrity: sha512-PNKbQY7PdqUWhtZs6qANnFq5CZNeIPUchCg7f7V7AVjpQmWTXE83hob10Rs8SlAJiW/K6TeCUIlDXEYu8uPfAg==} '@vue/server-renderer@3.4.35': resolution: {integrity: sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw==} peerDependencies: vue: 3.4.35 - '@vue/server-renderer@3.5.0-beta.1': - resolution: {integrity: sha512-siDsHX84Yb9nF5H2Xp5h8mb/qXftNbgFiEN2Dr9N1RUaPXcz9Ai4grbMg6yTVm8aoC4gCXBgDVms+QRqSX3Xdg==} + '@vue/server-renderer@3.5.0-beta.2': + resolution: {integrity: sha512-qXl30M9DQU4gfJ8p9ee9qTytW14To5DvvkGzGZJy7Ff/4LNlu/dbOsFi88R7xgLIKuNfjfU1VLToG9aKeY59Zw==} peerDependencies: - vue: 3.5.0-beta.1 + vue: 3.5.0-beta.2 '@vue/shared@3.4.35': resolution: {integrity: sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ==} - '@vue/shared@3.5.0-beta.1': - resolution: {integrity: sha512-RbjXOkVFA+92CWL8HLexUKIl3yUH0PGuzfjDtaNmr4WRP8vlA7xOyRm4iX+jl/KCbZb9JjC0r8yYWqNiMdeSJQ==} + '@vue/shared@3.5.0-beta.2': + resolution: {integrity: sha512-cexku/B2Ezno4tBTSfgNwaY+WUAF1rI3S3D9mOOYDn3gEpRn+HR5cLNW3bVC8yxoH4cNd4YMpbELuhMv67+/cw==} '@vue/theme@2.2.12': resolution: {integrity: sha512-LR2cf3c6rKLW2UbDwPZ3cTsjdlI9RNl8WpU7T9tMKkzEfdKfkHf0aazv877iNLMqNvIVr9EY/8KdEAe8HRDcBQ==} @@ -649,10 +649,6 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@5.0.0: - resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} - engines: {node: '>=0.12'} - esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -726,6 +722,10 @@ packages: resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} + preact@10.22.0: resolution: {integrity: sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==} @@ -858,8 +858,8 @@ packages: typescript: optional: true - vue@3.5.0-beta.1: - resolution: {integrity: sha512-17ZEyGr4411DWSNM9E0nNzQ4IPCkFPeDffTL17IFF+vCwinn9o5VyJmHexa2qKiwoLJ4Ib+3IGo+eAEgafW+fA==} + vue@3.5.0-beta.2: + resolution: {integrity: sha512-B/h1dDaDaKyWgIEUQ77Qc1n0BPg/rtTSfKBVyZ/7uCpy1oOzqjrfQmgqBg7mE7UhKemC+pXmbAuL35va6C2qZQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1096,7 +1096,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 optional: true @@ -1119,7 +1119,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 optional: true '@rollup/rollup-android-arm-eabi@4.18.0': @@ -1222,17 +1222,17 @@ snapshots: '@vue/compiler-core@3.4.35': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.25.3 '@vue/shared': 3.4.35 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-core@3.5.0-beta.1': + '@vue/compiler-core@3.5.0-beta.2': dependencies: '@babel/parser': 7.25.3 - '@vue/shared': 3.5.0-beta.1 - entities: 5.0.0 + '@vue/shared': 3.5.0-beta.2 + entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 @@ -1241,10 +1241,10 @@ snapshots: '@vue/compiler-core': 3.4.35 '@vue/shared': 3.4.35 - '@vue/compiler-dom@3.5.0-beta.1': + '@vue/compiler-dom@3.5.0-beta.2': dependencies: - '@vue/compiler-core': 3.5.0-beta.1 - '@vue/shared': 3.5.0-beta.1 + '@vue/compiler-core': 3.5.0-beta.2 + '@vue/shared': 3.5.0-beta.2 '@vue/compiler-sfc@3.4.35': dependencies: @@ -1258,16 +1258,16 @@ snapshots: postcss: 8.4.40 source-map-js: 1.2.0 - '@vue/compiler-sfc@3.5.0-beta.1': + '@vue/compiler-sfc@3.5.0-beta.2': dependencies: '@babel/parser': 7.25.3 - '@vue/compiler-core': 3.5.0-beta.1 - '@vue/compiler-dom': 3.5.0-beta.1 - '@vue/compiler-ssr': 3.5.0-beta.1 - '@vue/shared': 3.5.0-beta.1 + '@vue/compiler-core': 3.5.0-beta.2 + '@vue/compiler-dom': 3.5.0-beta.2 + '@vue/compiler-ssr': 3.5.0-beta.2 + '@vue/shared': 3.5.0-beta.2 estree-walker: 2.0.2 magic-string: 0.30.11 - postcss: 8.4.40 + postcss: 8.4.41 source-map-js: 1.2.0 '@vue/compiler-ssr@3.4.35': @@ -1275,10 +1275,10 @@ snapshots: '@vue/compiler-dom': 3.4.35 '@vue/shared': 3.4.35 - '@vue/compiler-ssr@3.5.0-beta.1': + '@vue/compiler-ssr@3.5.0-beta.2': dependencies: - '@vue/compiler-dom': 3.5.0-beta.1 - '@vue/shared': 3.5.0-beta.1 + '@vue/compiler-dom': 3.5.0-beta.2 + '@vue/shared': 3.5.0-beta.2 '@vue/compiler-vue2@2.7.16': dependencies: @@ -1320,9 +1320,9 @@ snapshots: dependencies: '@vue/shared': 3.4.35 - '@vue/reactivity@3.5.0-beta.1': + '@vue/reactivity@3.5.0-beta.2': dependencies: - '@vue/shared': 3.5.0-beta.1 + '@vue/shared': 3.5.0-beta.2 '@vue/repl@4.3.1': {} @@ -1331,10 +1331,10 @@ snapshots: '@vue/reactivity': 3.4.35 '@vue/shared': 3.4.35 - '@vue/runtime-core@3.5.0-beta.1': + '@vue/runtime-core@3.5.0-beta.2': dependencies: - '@vue/reactivity': 3.5.0-beta.1 - '@vue/shared': 3.5.0-beta.1 + '@vue/reactivity': 3.5.0-beta.2 + '@vue/shared': 3.5.0-beta.2 '@vue/runtime-dom@3.4.35': dependencies: @@ -1343,11 +1343,11 @@ snapshots: '@vue/shared': 3.4.35 csstype: 3.1.3 - '@vue/runtime-dom@3.5.0-beta.1': + '@vue/runtime-dom@3.5.0-beta.2': dependencies: - '@vue/reactivity': 3.5.0-beta.1 - '@vue/runtime-core': 3.5.0-beta.1 - '@vue/shared': 3.5.0-beta.1 + '@vue/reactivity': 3.5.0-beta.2 + '@vue/runtime-core': 3.5.0-beta.2 + '@vue/shared': 3.5.0-beta.2 csstype: 3.1.3 '@vue/server-renderer@3.4.35(vue@3.4.35(typescript@5.4.5))': @@ -1356,25 +1356,25 @@ snapshots: '@vue/shared': 3.4.35 vue: 3.4.35(typescript@5.4.5) - '@vue/server-renderer@3.5.0-beta.1(vue@3.5.0-beta.1(typescript@5.4.5))': + '@vue/server-renderer@3.5.0-beta.2(vue@3.5.0-beta.2(typescript@5.4.5))': dependencies: - '@vue/compiler-ssr': 3.5.0-beta.1 - '@vue/shared': 3.5.0-beta.1 - vue: 3.5.0-beta.1(typescript@5.4.5) + '@vue/compiler-ssr': 3.5.0-beta.2 + '@vue/shared': 3.5.0-beta.2 + vue: 3.5.0-beta.2(typescript@5.4.5) '@vue/shared@3.4.35': {} - '@vue/shared@3.5.0-beta.1': {} + '@vue/shared@3.5.0-beta.2': {} - '@vue/theme@2.2.12(@algolia/client-search@4.23.3)(search-insights@2.14.0)(vitepress@1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.40)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5))(vue@3.5.0-beta.1(typescript@5.4.5))': + '@vue/theme@2.2.12(@algolia/client-search@4.23.3)(search-insights@2.14.0)(vitepress@1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.41)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5))(vue@3.5.0-beta.2(typescript@5.4.5))': dependencies: '@docsearch/css': 3.6.0 '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.14.0) - '@vueuse/core': 10.10.0(vue@3.5.0-beta.1(typescript@5.4.5)) + '@vueuse/core': 10.10.0(vue@3.5.0-beta.2(typescript@5.4.5)) body-scroll-lock: 4.0.0-beta.0 normalize.css: 8.0.1 tiny-decode: 0.1.3 - vitepress: 1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.40)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5) + vitepress: 1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.41)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5) transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -1384,12 +1384,12 @@ snapshots: - search-insights - vue - '@vueuse/core@10.10.0(vue@3.5.0-beta.1(typescript@5.4.5))': + '@vueuse/core@10.10.0(vue@3.5.0-beta.2(typescript@5.4.5))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.10.0 - '@vueuse/shared': 10.10.0(vue@3.5.0-beta.1(typescript@5.4.5)) - vue-demi: 0.14.8(vue@3.5.0-beta.1(typescript@5.4.5)) + '@vueuse/shared': 10.10.0(vue@3.5.0-beta.2(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.5.0-beta.2(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -1419,9 +1419,9 @@ snapshots: '@vueuse/metadata@10.11.0': {} - '@vueuse/shared@10.10.0(vue@3.5.0-beta.1(typescript@5.4.5))': + '@vueuse/shared@10.10.0(vue@3.5.0-beta.2(typescript@5.4.5))': dependencies: - vue-demi: 0.14.8(vue@3.5.0-beta.1(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.5.0-beta.2(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -1484,8 +1484,6 @@ snapshots: entities@4.5.0: {} - entities@5.0.0: {} - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -1565,6 +1563,12 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 + postcss@8.4.41: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + preact@10.22.0: {} rfdc@1.4.1: {} @@ -1647,7 +1651,7 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 - vitepress@1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.40)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5): + vitepress@1.3.2(@algolia/client-search@4.23.3)(@types/node@20.14.1)(postcss@8.4.41)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5): dependencies: '@docsearch/css': 3.6.0 '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.14.0) @@ -1666,7 +1670,7 @@ snapshots: vite: 5.3.3(@types/node@20.14.1)(terser@5.31.0) vue: 3.4.35(typescript@5.4.5) optionalDependencies: - postcss: 8.4.40 + postcss: 8.4.41 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -1700,9 +1704,9 @@ snapshots: dependencies: vue: 3.4.35(typescript@5.4.5) - vue-demi@0.14.8(vue@3.5.0-beta.1(typescript@5.4.5)): + vue-demi@0.14.8(vue@3.5.0-beta.2(typescript@5.4.5)): dependencies: - vue: 3.5.0-beta.1(typescript@5.4.5) + vue: 3.5.0-beta.2(typescript@5.4.5) vue-tsc@2.0.29(typescript@5.4.5): dependencies: @@ -1721,12 +1725,12 @@ snapshots: optionalDependencies: typescript: 5.4.5 - vue@3.5.0-beta.1(typescript@5.4.5): + vue@3.5.0-beta.2(typescript@5.4.5): dependencies: - '@vue/compiler-dom': 3.5.0-beta.1 - '@vue/compiler-sfc': 3.5.0-beta.1 - '@vue/runtime-dom': 3.5.0-beta.1 - '@vue/server-renderer': 3.5.0-beta.1(vue@3.5.0-beta.1(typescript@5.4.5)) - '@vue/shared': 3.5.0-beta.1 + '@vue/compiler-dom': 3.5.0-beta.2 + '@vue/compiler-sfc': 3.5.0-beta.2 + '@vue/runtime-dom': 3.5.0-beta.2 + '@vue/server-renderer': 3.5.0-beta.2(vue@3.5.0-beta.2(typescript@5.4.5)) + '@vue/shared': 3.5.0-beta.2 optionalDependencies: typescript: 5.4.5 From 9a4c8127181cc411e1a330d692b6d7c457f06db1 Mon Sep 17 00:00:00 2001 From: Natalia Tepluhina Date: Tue, 20 Aug 2024 13:35:37 +0200 Subject: [PATCH 02/36] Added a link explaining how to use inheritAttrs in normal + + + ``` + +- **Details** + + IDs generated by `useId()` are unique-per-application. It can be used to generate IDs for form elements and accessibility attributes. Multiple calls in the same component will generate different IDs; multiple instances of the same component calling `useId()` will also have different IDs. + + IDs generated by `useId()` are also guaranteed to be stable across the server and client renders, so they can be used in SSR applications without leading to hydration mismatches. + + If you have more than one Vue application instance of the same page, you can avoid ID conflicts by giving each app an ID prefix via [`app.config.idPrefix`](/api/application#app-config-idprefix). From e1a923e6ec17b15583a3a59d1e8072af19399588 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 30 Aug 2024 15:11:32 +0800 Subject: [PATCH 14/36] 3.5: lazy hydration --- src/guide/components/async.md | 99 +++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/src/guide/components/async.md b/src/guide/components/async.md index 4927549f6..fe786b969 100644 --- a/src/guide/components/async.md +++ b/src/guide/components/async.md @@ -108,6 +108,105 @@ If a loading component is provided, it will be displayed first while the inner c If an error component is provided, it will be displayed when the Promise returned by the loader function is rejected. You can also specify a timeout to show the error component when the request is taking too long. +## Lazy Hydration {#lazy-hydration} + +> This section only applies if you are using [Server-Side Rendering](/guide/scaling-up/ssr). + +In Vue 3.5+, async components can control when they are hydrated by providing a hydration strategy. + +- Vue provides a number of built-in hydration strategies. These built-in strategies need to be individually imported so they can be tree-shaken if not used. + +- The design is intentionally low-level for flexibility. Compiler syntax sugar can potentially be built on top of this in the future either in core or in higher level solutions (e.g. Nuxt). + +### Hydrate on Idle + +Hydrates via `requestIdleCallback`: + +```js +import { defineAsyncComponent, hydrateOnIdle } from 'vue' + +const AsyncComp = defineAsyncComponent({ + loader: () => import('./Comp.vue'), + hydrate: hydrateOnIdle(/* optionally pass a max timeout */) +}) +``` + +### Hydrate on Visible + +Hydrate when element(s) become visible via `IntersectionObserver`. + +```js +import { defineAsyncComponent, hydrateOnVisible } from 'vue' + +const AsyncComp = defineAsyncComponent({ + loader: () => import('./Comp.vue'), + hydrate: hydrateOnVisible() +}) +``` + +Can optionally pass in an options object value for the observer: + +```js +hydrateOnVisible({ rootMargin: '100px' }) +``` + +### Hydrate on Media Query + +Hydrates when the specified media query matches. + +```js +import { defineAsyncComponent, hydrateOnMediaQuery } from 'vue' + +const AsyncComp = defineAsyncComponent({ + loader: () => import('./Comp.vue'), + hydrate: hydrateOnMediaQuery('(max-width:500px)') +}) +``` + +### Hydrate on Interaction + +Hydrates when specified event(s) are triggered on the component element(s). The event that triggered the hydration will also be replayed once hydration is complete. + +```js +import { defineAsyncComponent, hydrateOnInteraction } from 'vue' + +const AsyncComp = defineAsyncComponent({ + loader: () => import('./Comp.vue'), + hydrate: hydrateOnInteraction('click') +}) +``` + +Can also be a list of multiple event types: + +```js +hydrateOnInteraction(['wheel', 'mouseover']) +``` + +### Custom Strategy + +```ts +import { defineAsyncComponent, type HydrationStrategy } from 'vue' + +const myStrategy: HydrationStrategy = (hydrate, forEachElement) => { + // forEachElement is a helper to iterate through all the root elememts + // in the component's non-hydrated DOM, since the root can be a fragment + // instead of a single element + forEachElement(el => { + // ... + }) + // call `hydrate` when ready + hydrate() + return () => { + // return a teardown function if needed + } +} + +const AsyncComp = defineAsyncComponent({ + loader: () => import('./Comp.vue'), + hydrate: myStrategy +}) +``` + ## Using with Suspense {#using-with-suspense} Async components can be used with the `` built-in component. The interaction between `` and async components is documented in the [dedicated chapter for ``](/guide/built-ins/suspense). From 9bc11b23fbaa0a4f8af7c9e9c3f50f588d30f434 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 30 Aug 2024 15:20:44 +0800 Subject: [PATCH 15/36] 3.5: data-allow-mismatch --- src/api/ssr.md | 20 ++++++++++++++++++++ src/guide/scaling-up/ssr.md | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/src/api/ssr.md b/src/api/ssr.md index a85101323..a39ea4187 100644 --- a/src/api/ssr.md +++ b/src/api/ssr.md @@ -220,3 +220,23 @@ A runtime API used to retrieve the context object passed to `renderToString()` o } ``` + +## data-allow-mismatch {#data-allow-mismatch} + +A special attribute that can be used to suppress [hydration mismatch](/guide/scaling-up/ssr#hydration-mismatch) warnings. + +- **Example** + + ```html +
{{ data.toLocaleString() }}
+ ``` + + The value can limit the allowed mismatch to a specific type. Allowed values are: + + - `text` + - `children` (only allows mismatch for direct children) + - `class` + - `style` + - `attribute` + + If no value is provided, all types of mismatches will be allowed. diff --git a/src/guide/scaling-up/ssr.md b/src/guide/scaling-up/ssr.md index 780c6c1ba..c78ce0b7b 100644 --- a/src/guide/scaling-up/ssr.md +++ b/src/guide/scaling-up/ssr.md @@ -314,6 +314,10 @@ If the DOM structure of the pre-rendered HTML does not match the expected output When Vue encounters a hydration mismatch, it will attempt to automatically recover and adjust the pre-rendered DOM to match the client-side state. This will lead to some rendering performance loss due to incorrect nodes being discarded and new nodes being mounted, but in most cases, the app should continue to work as expected. That said, it is still best to eliminate hydration mismatches during development. +#### Suppressing Hydration Mismatches {#suppressing-hydration-mismatches} + +In Vue 3.5+, it is possible to selectively suppress inevitable hydration mismatches by using the [`data-allow-mismatch`](/api/ssr#data-allow-mismatch) attribute. + ### Custom Directives {#custom-directives} Since most custom directives involve direct DOM manipulation, they are ignored during SSR. However, if you want to specify how a custom directive should be rendered (i.e. what attributes it should add to the rendered element), you can use the `getSSRProps` directive hook: From e3d9fc60f6b2c92f0d3f2348c0025fabf580364d Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 30 Aug 2024 15:53:50 +0800 Subject: [PATCH 16/36] 3.5: add composition api helpers page --- .vitepress/config.ts | 4 +++ src/api/composition-api-helpers.md | 40 ++++++++++++++++++++++++++++++ src/api/general.md | 31 ----------------------- 3 files changed, 44 insertions(+), 31 deletions(-) create mode 100644 src/api/composition-api-helpers.md diff --git a/.vitepress/config.ts b/.vitepress/config.ts index dd0f10a78..41f0df0c9 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -368,6 +368,10 @@ export const sidebar: ThemeConfig['sidebar'] = { { text: 'Dependency Injection', link: '/api/composition-api-dependency-injection' + }, + { + text: 'Helpers', + link: '/api/composition-api-helpers' } ] }, diff --git a/src/api/composition-api-helpers.md b/src/api/composition-api-helpers.md new file mode 100644 index 000000000..6cbe39314 --- /dev/null +++ b/src/api/composition-api-helpers.md @@ -0,0 +1,40 @@ +# Composition API: Helpers {#composition-api-helpers} + +## useAttrs() {#useattrs} + +## useSlots() {#useslots} + +## useModel() {#usemodel} + +## useTemplateRef() {#usetemplateref} + +## useId() {#useid} + +`useId()` is an API that can be used to generate unique-per-application IDs. + +- **Composition API only.** + +- **Example** + + ```vue + + + + ``` + +- **Details** + + IDs generated by `useId()` are unique-per-application. It can be used to generate IDs for form elements and accessibility attributes. Multiple calls in the same component will generate different IDs; multiple instances of the same component calling `useId()` will also have different IDs. + + IDs generated by `useId()` are also guaranteed to be stable across the server and client renders, so they can be used in SSR applications without leading to hydration mismatches. + + If you have more than one Vue application instance of the same page, you can avoid ID conflicts by giving each app an ID prefix via [`app.config.idPrefix`](/api/application#app-config-idprefix). diff --git a/src/api/general.md b/src/api/general.md index 569412c55..80eec455f 100644 --- a/src/api/general.md +++ b/src/api/general.md @@ -266,34 +266,3 @@ This method accepts the same argument as [`defineComponent`](#definecomponent), - [Guide - Building Custom Elements with Vue](/guide/extras/web-components#building-custom-elements-with-vue) - Also note that `defineCustomElement()` requires [special config](/guide/extras/web-components#sfc-as-custom-element) when used with Single-File Components. - -## useId() {#useid} - -`useId()` is an API that can be used to generate unique-per-application IDs. - -- **Composition API only.** - -- **Example** - - ```vue - - - - ``` - -- **Details** - - IDs generated by `useId()` are unique-per-application. It can be used to generate IDs for form elements and accessibility attributes. Multiple calls in the same component will generate different IDs; multiple instances of the same component calling `useId()` will also have different IDs. - - IDs generated by `useId()` are also guaranteed to be stable across the server and client renders, so they can be used in SSR applications without leading to hydration mismatches. - - If you have more than one Vue application instance of the same page, you can avoid ID conflicts by giving each app an ID prefix via [`app.config.idPrefix`](/api/application#app-config-idprefix). From 9d52084eaffc8c0f6d3d0825b7aab4c4ee1079c4 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 30 Aug 2024 16:06:15 +0800 Subject: [PATCH 17/36] useAttrs, useSlots, useModel --- src/api/composition-api-helpers.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/api/composition-api-helpers.md b/src/api/composition-api-helpers.md index 6cbe39314..c5757327f 100644 --- a/src/api/composition-api-helpers.md +++ b/src/api/composition-api-helpers.md @@ -2,18 +2,39 @@ ## useAttrs() {#useattrs} +Returns the `attrs` object from the [Setup Context](/api/composition-api-setup#setup-context), which includes the [fallthrough attributes](/guide/components/attrs#fallthrough-attributes) of the current component. This is intended to be used in ` + + + ``` + +- **See also** + - [Guide - Template Refs](/guide/essentials/template-refs) + - [Guide - Typing Template Refs](/guide/typescript/composition-api#typing-template-refs) + - [Guide - Typing Component Template Refs](/guide/typescript/composition-api#typing-component-template-refs) + ## useId() {#useid} -`useId()` is an API that can be used to generate unique-per-application IDs. +Used to generate unique-per-application IDs for accessibility attributes or form elements. + +- **Type** + + ```ts + function useId(): string + ``` - **Example** @@ -55,7 +119,7 @@ This is the underlying helper that powers [`defineModel()`](/api/sfc-script-setu - **Details** IDs generated by `useId()` are unique-per-application. It can be used to generate IDs for form elements and accessibility attributes. Multiple calls in the same component will generate different IDs; multiple instances of the same component calling `useId()` will also have different IDs. - + IDs generated by `useId()` are also guaranteed to be stable across the server and client renders, so they can be used in SSR applications without leading to hydration mismatches. If you have more than one Vue application instance of the same page, you can avoid ID conflicts by giving each app an ID prefix via [`app.config.idPrefix`](/api/application#app-config-idprefix). diff --git a/src/guide/essentials/template-refs.md b/src/guide/essentials/template-refs.md index 499963255..04624e13c 100644 --- a/src/guide/essentials/template-refs.md +++ b/src/guide/essentials/template-refs.md @@ -12,7 +12,32 @@ While Vue's declarative rendering model abstracts away most of the direct DOM op
-To obtain the reference with Composition API, we need to declare a ref with a name that matches the template ref attribute's value: +To obtain the reference with Composition API, we can use the [`useTemplateRef()`](/api/composition-api-helpers#usetemplateref) helper: + +```vue + + + +``` + +When using TypeScript, Vue's IDE support and `vue-tsc` will automatically infer the type of `inputRef.value` based on what element or component the matching `ref` attribute is used on. + +
+Usage before 3.5 + +In versions before 3.5 where `useTemplateRef()` was not introduced, we need to declare a ref with a name that matches the template ref attribute's value: ```vue + + +``` + +[Try it in the Playground](https://play.vuejs.org/#eNp9UsluwjAQ/ZWRLwQpDepyQoDUIg6t1EWUW91DFAZq6tiWF4oU5d87dtgqVRyyzLw3b+aN3bB7Y4ptQDZkI1dZYTw49MFMuBK10dZDAxZXOQSHC6yNLD3OY6zVsw7K4xJaWFldQ49UelxxVWnlPEhBr3GszT6uc7jJ4fazf4KFx5p0HFH+Kme9CLle4h6bZFkfxhNouAIoJVqfHQSKbSkDFnVpMhEpovC481NNVcr3SaWlZzTovJErCqgydaMIYBRk+tKfFLC9Wmk75iyqg1DJBWfRxT7pONvTAZom2YC23QsMpOg0B0l0NDh2YjnzjpyvxLrYOK1o3ckLZ5WujSBHr8YL2gxnw85lxEop9c9TynkbMD/kqy+svv/Jb9wu5jh7s+jQbpGzI+ZLu0byEuHZ+wvt6Ays9TJIYl8A5+i0DHHGjvYQ1JLGPuOlaR/TpRFqvXCzHR2BO5iKg0Zmm/ic0W2ZXrB+Gve2uEt1dJKs/QXbwePE) + +
+Usage before 3.5 + ```vue + + +``` + +
+Usage before 3.5 + ```vue -``` +In cases where auto-inference is not possible (e.g. non-SFC usage or dynamic components), you can still cast the template ref to an explicit type via the generic argument. -In order to get the instance type of `MyModal`, we need to first get its type via `typeof`, then use TypeScript's built-in `InstanceType` utility to extract its instance type: +In order to get the instance type of an imported component, we need to first get its type via `typeof`, then use TypeScript's built-in `InstanceType` utility to extract its instance type: ```vue{5} + + ``` In cases where the exact type of the component isn't available or isn't important, `ComponentPublicInstance` can be used instead. This will only include properties that are shared by all components, such as `$el`: ```ts -import { ref } from 'vue' +import { useTemplateRef } from 'vue' import type { ComponentPublicInstance } from 'vue' -const child = ref(null) +const child = useTemplateRef(null) ``` In cases where the component referenced is a [generic component](/guide/typescript/overview.html#generic-components), for instance `MyGenericModal`: @@ -457,11 +463,11 @@ It needs to be referenced using `ComponentExposed` from the [`vue-component-type ```vue ``` +Note that with `@vue/language-tools` 2.1+, static template refs' types can be automatically inferred and the above is only needed in edge cases. From 3c4ecd8c40a3a980667ccdac6df44e81c4217738 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 30 Aug 2024 18:03:59 +0800 Subject: [PATCH 19/36] app.config.throwUnhandledErrorInProduction --- src/api/application.md | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/api/application.md b/src/api/application.md index 132c34d29..328f000e4 100644 --- a/src/api/application.md +++ b/src/api/application.md @@ -90,6 +90,18 @@ Unmounts a mounted application instance, triggering the unmount lifecycle hooks } ``` +## app.onUnmount() {#app-onunmount} + +Registers a callback to be called when the app is unmounted. + +- **Type** + + ```ts + interface App { + onUnmount(callback: () => any): void + } + ``` + ## app.component() {#app-component} Registers a global component if passing both a name string and a component definition, or retrieves an already registered one if only the name is passed. @@ -619,7 +631,7 @@ Configure a prefix for all IDs generated via [useId()](/api/general#useid) insid - **Default:** `undefined` -- **Example:** +- **Example** ```js app.config.idPrefix = 'my-app' @@ -630,3 +642,21 @@ Configure a prefix for all IDs generated via [useId()](/api/general#useid) insid const id1 = useId() // 'my-app:0' const id2 = useId() // 'my-app:1' ``` + +## app.config.throwUnhandledErrorInProduction {#app-config-throwunhandlederrorinproduction} + +Force unhandled errors to be thrown in production mode. + +- **Type:** `boolean` + +- **Default:** `false` + +- **Details** + + By default, errors thrown inside a Vue application but not explicit handled have different behavior between development and production modes: + + - In development, the error is thrown and can possibly crash the application. This is to make the error more prominent so that it can be noticed and fixed during development. + + - In production, the error will only be logged to the console to minimize the impact to end users. However, this may prevent errors that only happen in production from being caught by error monitoring services. + + By setting `app.config.throwUnhandledErrorInProduction` to `true`, unhandled errors will be thrown even in production mode. From b6339b62a9522eb195a24ef74ee6392d65d2bfd7 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 30 Aug 2024 18:09:59 +0800 Subject: [PATCH 20/36] remove version badages for previous minors --- src/api/application.md | 4 +++- src/api/built-in-directives.md | 10 ++++++---- src/api/compile-time-flags.md | 4 +++- src/api/composition-api-dependency-injection.md | 4 +++- src/api/composition-api-helpers.md | 8 ++++++-- src/api/general.md | 4 +++- src/api/reactivity-core.md | 4 ++-- src/api/reactivity-utilities.md | 4 +++- src/api/sfc-script-setup.md | 4 +++- src/guide/best-practices/performance.md | 4 ++-- src/guide/essentials/template-syntax.md | 4 +++- src/guide/essentials/watchers.md | 4 +++- 12 files changed, 40 insertions(+), 18 deletions(-) diff --git a/src/api/application.md b/src/api/application.md index 328f000e4..189422bcb 100644 --- a/src/api/application.md +++ b/src/api/application.md @@ -283,10 +283,12 @@ Provide a value that can be injected in all descendant components within the app - [App-level Provide](/guide/components/provide-inject#app-level-provide) - [app.runWithContext()](#app-runwithcontext) -## app.runWithContext() {#app-runwithcontext} +## app.runWithContext() {#app-runwithcontext} Execute a callback with the current app as injection context. +- Only supported in 3.3+ + - **Type** ```ts diff --git a/src/api/built-in-directives.md b/src/api/built-in-directives.md index c0a3b6e81..8afb0bfc4 100644 --- a/src/api/built-in-directives.md +++ b/src/api/built-in-directives.md @@ -259,7 +259,7 @@ Dynamically bind one or more attributes, or a component prop to an expression. - **Shorthand:** - `:` or `.` (when using `.prop` modifier) - - Omitting value (when attribute and bound value has the same name) 3.4+ + - Omitting value (when attribute and bound value has the same name, requires 3.4+) - **Expects:** `any (with argument) | Object (without argument)` @@ -268,8 +268,8 @@ Dynamically bind one or more attributes, or a component prop to an expression. - **Modifiers** - `.camel` - transform the kebab-case attribute name into camelCase. - - `.prop` - force a binding to be set as a DOM property. 3.2+ - - `.attr` - force a binding to be set as a DOM attribute. 3.2+ + - `.prop` - force a binding to be set as a DOM property (3.2+). + - `.attr` - force a binding to be set as a DOM attribute (3.2+). - **Usage** @@ -468,7 +468,9 @@ Render the element and component once only, and skip future updates. - [Data Binding Syntax - interpolations](/guide/essentials/template-syntax#text-interpolation) - [v-memo](#v-memo) -## v-memo {#v-memo} +## v-memo {#v-memo} + +- Only supported in 3.2+ - **Expects:** `any[]` diff --git a/src/api/compile-time-flags.md b/src/api/compile-time-flags.md index cdd59fca6..b590cad81 100644 --- a/src/api/compile-time-flags.md +++ b/src/api/compile-time-flags.md @@ -26,12 +26,14 @@ See [Configuration Guides](#configuration-guides) on how to configure them depen Enable / disable devtools support in production builds. This will result in more code included in the bundle, so it is recommended to only enable this for debugging purposes. -## `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` {#VUE_PROD_HYDRATION_MISMATCH_DETAILS} +## `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` {#VUE_PROD_HYDRATION_MISMATCH_DETAILS} - **Default:** `false` Enable/disable detailed warnings for hydration mismatches in production builds. This will result in more code included in the bundle, so it is recommended to only enable this for debugging purposes. +- Only available in 3.4+ + ## Configuration Guides {#configuration-guides} ### Vite {#vite} diff --git a/src/api/composition-api-dependency-injection.md b/src/api/composition-api-dependency-injection.md index 32ecb19fb..89df32657 100644 --- a/src/api/composition-api-dependency-injection.md +++ b/src/api/composition-api-dependency-injection.md @@ -107,10 +107,12 @@ Injects a value provided by an ancestor component or the application (via `app.p - [Guide - Provide / Inject](/guide/components/provide-inject) - [Guide - Typing Provide / Inject](/guide/typescript/composition-api#typing-provide-inject) -## hasInjectionContext() {#has-injection-context} +## hasInjectionContext() {#has-injection-context} Returns true if [inject()](#inject) can be used without warning about being called in the wrong place (e.g. outside of `setup()`). This method is designed to be used by libraries that want to use `inject()` internally without triggering a warning to the end user. +- Only supported in 3.3+ + - **Type** ```ts diff --git a/src/api/composition-api-helpers.md b/src/api/composition-api-helpers.md index acb9bb6cf..d09391857 100644 --- a/src/api/composition-api-helpers.md +++ b/src/api/composition-api-helpers.md @@ -22,11 +22,11 @@ If using TypeScript, [`defineSlots()`](/api/sfc-script-setup#defineslots) should function useSlots(): Record VNode[]> ``` -## useModel() {#usemodel} +## useModel() {#usemodel} This is the underlying helper that powers [`defineModel()`](/api/sfc-script-setup#definemodel). If using ` ``` -- Only supported in 3.3+. - This is a macro. The options will be hoisted to module scope and cannot access local variables in ` ``` -- Only supported in 3.3+. - ## `useSlots()` & `useAttrs()` {#useslots-useattrs} Usage of `slots` and `attrs` inside ` @@ -244,7 +244,7 @@ onMounted(() => { ```
-Usage before 3.5 +3.5 前的用法 ```vue ``` -Note that with `@vue/language-tools` 2.1+, static template refs' types can be automatically inferred and the above is only needed in edge cases. +请注意在 `@vue/language-tools` 2.1 以上版本中,静态模板 ref 的类型可以被自动推导,上述这些仅在极端情况下需要。 From 80157a759110ed513f11d5ff4187503be840c911 Mon Sep 17 00:00:00 2001 From: GU Yiling Date: Tue, 10 Sep 2024 12:24:18 +0800 Subject: [PATCH 36/36] Update src/guide/components/props.md --- src/guide/components/props.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guide/components/props.md b/src/guide/components/props.md index 83aa35add..0849f9bd1 100644 --- a/src/guide/components/props.md +++ b/src/guide/components/props.md @@ -152,7 +152,7 @@ watchEffect(() => { const { foo = 'hello' } = defineProps<{ foo?: string }>() ``` -如果你希望在您的 IDE 中在解构的 props 和普通变量之间有更多视觉上的区分,Vue 的 VSCode 扩展提供了一个设置来启用解构 props 的内联提示。 +如果你希望在 IDE 中在解构的 props 和普通变量之间有更多视觉上的区分,Vue 的 VSCode 扩展提供了一个设置来启用解构 props 的内联提示。 ### 将解构的 props 传递到函数中