diff --git a/.gitignore b/.gitignore index 7e0e1ec9b..e3e41bc4e 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent +.idea # Directories potentially created on remote AFP share .AppleDB diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 000000000..13566b81b --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/aws.xml b/.idea/aws.xml new file mode 100644 index 000000000..03f1bb6ee --- /dev/null +++ b/.idea/aws.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 000000000..a1998581b --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 000000000..79ee123c2 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/docs.iml b/.idea/docs.iml new file mode 100644 index 000000000..d6ebd4805 --- /dev/null +++ b/.idea/docs.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..211753fb9 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..6049cfe01 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..35eb1ddfb --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.vitepress/config.ts b/.vitepress/config.ts index 489af755f..d2d95be1a 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -760,7 +760,7 @@ export default defineConfigWithTheme({ socialLinks: [ { icon: 'github', link: 'https://github.com/vuejs/' }, { icon: 'twitter', link: 'https://twitter.com/vuejs' }, - { icon: 'discord', link: 'https://discord.com/invite/HBherRA' } + { icon: 'discord', link: 'https://discord.com/invite/vue' } ], editLink: { diff --git a/.vitepress/inlined-scripts/restorePreference.js b/.vitepress/inlined-scripts/restorePreference.js index 5e18b50ff..6eee492a4 100644 --- a/.vitepress/inlined-scripts/restorePreference.js +++ b/.vitepress/inlined-scripts/restorePreference.js @@ -8,6 +8,6 @@ restore('vue-docs-prefer-composition', 'prefer-composition', true) restore('vue-docs-prefer-sfc', 'prefer-sfc', true) - // window.__VUE_BANNER_ID__ = '' - // restore(`vue-docs-banner-${__VUE_BANNER_ID__}`, 'banner-dismissed') + window.__VUE_BANNER_ID__ = 'vueconfus2024' + restore(`vue-docs-banner-${__VUE_BANNER_ID__}`, 'banner-dismissed') })() diff --git a/.vitepress/theme/components/Banner.vue b/.vitepress/theme/components/Banner.vue index 6730fcd48..f10b9e22e 100644 --- a/.vitepress/theme/components/Banner.vue +++ b/.vitepress/theme/components/Banner.vue @@ -22,16 +22,30 @@ function dismiss() { @@ -50,12 +64,10 @@ html:not(.banner-dismissed) { font-weight: 600; color: #fff; background-color: var(--vt-c-green); - background: linear-gradient( - 90deg, - rgba(66, 184, 131, 1) 0%, - rgba(39, 179, 137, 1) 19%, - rgba(100, 126, 255, 1) 100% - ); + background: #11252b; + display: flex; + justify-content: center; + align-items: center; } .banner-dismissed .banner { @@ -70,7 +82,7 @@ button { position: absolute; right: 0; top: 0; - padding: 5px; + padding: 20px 10px; } .close { @@ -79,10 +91,59 @@ button { fill: #fff; transform: rotate(45deg); } -/* -@media (max-width: 720px) { - a > span { + +.vt-banner-text { + color: #fff; + font-size: 16px; +} + +.vt-text-primary { + color: #75c05e; +} + +.vt-primary-action { + background: #75c05e; + color: #121c1a; + padding: 8px 15px; + border-radius: 5px; + font-size: 14px; + text-decoration: none; + margin: 0 20px; + font-weight: bold; +} +.vt-primary-action:hover { + text-decoration: none; + background: #5a9f45; +} + +@media (max-width: 1280px) { + .banner .vt-banner-text { + font-size: 14px; + } + .vt-tagline { + display: none; + } +} + +@media (max-width: 780px) { + .vt-tagline { + display: none; + } + .vt-coupon { + display: none; + } + .vt-primary-action { + margin: 0 10px; + padding: 7px 10px; + } + .vt-time-now { + display: none; + } +} + +@media (max-width: 560px) { + .vt-place { display: none; } -} */ +} diff --git a/.vitepress/theme/components/NewsLetter.vue b/.vitepress/theme/components/NewsLetter.vue index ef5424c4e..0f4b4be31 100644 --- a/.vitepress/theme/components/NewsLetter.vue +++ b/.vitepress/theme/components/NewsLetter.vue @@ -44,9 +44,9 @@ import { VTLink } from '@vue/theme' class="link" href="https://news.vuejs.org/" no-icon - >news.vuejs.org 阅读之前的期刊并收听我们的播客。你也可以在 + >news.vuejs.org 阅读之前的期刊并收听我们的播客。你也可以在 Twitter 关注我们,或加入我们的 - Discord 家园。 + Discord 家园。

diff --git a/package.json b/package.json index fa8e084ae..a748a3d30 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "preinstall": "npx only-allow pnpm" }, "dependencies": { - "@vue/repl": "^3.0.0", + "@vue/repl": "^4.0.1", "@vue/theme": "^2.2.5", "dynamics.js": "^1.1.5", "gsap": "^3.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f629134e9..bd056b03d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,11 @@ overrides: dependencies: '@vue/repl': - specifier: ^3.0.0 - version: 3.4.0 + specifier: ^4.0.1 + version: 4.1.1 '@vue/theme': specifier: ^2.2.5 - version: 2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.15) + version: 2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.21) dynamics.js: specifier: ^1.1.5 version: 1.1.5 @@ -25,7 +25,7 @@ dependencies: version: 1.0.0-rc.33(@types/node@20.10.1)(terser@5.14.2) vue: specifier: ^3.4.0 - version: 3.4.15 + version: 3.4.21 devDependencies: '@types/markdown-it': @@ -211,8 +211,8 @@ packages: engines: {node: '>=6.9.0'} dev: false - /@babel/parser@7.23.6: - resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: @@ -682,7 +682,7 @@ packages: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: false - /@vitejs/plugin-vue@5.0.0-beta.1(vite@5.0.10)(vue@3.4.15): + /@vitejs/plugin-vue@5.0.0-beta.1(vite@5.0.10)(vue@3.4.21): resolution: {integrity: sha512-zFAHH6RJH2w/LQlFyqrml96yjYmT8n8e3O4esRxHzCn250uOlkuc0IAqFJWqdxLmQquEM4q5/ECnQJRGsKjoIw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: @@ -690,98 +690,98 @@ packages: vue: ^3.2.25 dependencies: vite: 5.0.10(@types/node@20.10.1)(terser@5.14.2) - vue: 3.4.15 + vue: 3.4.21 dev: false - /@vue/compiler-core@3.4.15: - resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} dependencies: - '@babel/parser': 7.23.6 - '@vue/shared': 3.4.15 + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.21 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 dev: false - /@vue/compiler-dom@3.4.15: - resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} dependencies: - '@vue/compiler-core': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 dev: false - /@vue/compiler-sfc@3.4.15: - resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==} + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} dependencies: - '@babel/parser': 7.23.6 - '@vue/compiler-core': 3.4.15 - '@vue/compiler-dom': 3.4.15 - '@vue/compiler-ssr': 3.4.15 - '@vue/shared': 3.4.15 + '@babel/parser': 7.23.9 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 estree-walker: 2.0.2 - magic-string: 0.30.5 - postcss: 8.4.33 + magic-string: 0.30.7 + postcss: 8.4.35 source-map-js: 1.0.2 dev: false - /@vue/compiler-ssr@3.4.15: - resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==} + /@vue/compiler-ssr@3.4.21: + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} dependencies: - '@vue/compiler-dom': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 dev: false /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: false - /@vue/reactivity@3.4.15: - resolution: {integrity: sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==} + /@vue/reactivity@3.4.21: + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} dependencies: - '@vue/shared': 3.4.15 + '@vue/shared': 3.4.21 dev: false - /@vue/repl@3.4.0: - resolution: {integrity: sha512-iHhIsmQsp9PJuOwverCRQC2owFb0FSFzk6YWwyirAX6AqH//2FrUV4WB16f9lGX5pDXAHjxlzAE6Lqf9P17HHA==} + /@vue/repl@4.1.1: + resolution: {integrity: sha512-gkbnU+rM01/ILdnDJbsWS8+PW6qMAzprBo/U2+7eVci0kx6VAR26fL/qrcEPwEYa6q0vzzptZ4il0SaUGGqZKw==} dev: false - /@vue/runtime-core@3.4.15: - resolution: {integrity: sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==} + /@vue/runtime-core@3.4.21: + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} dependencies: - '@vue/reactivity': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 dev: false - /@vue/runtime-dom@3.4.15: - resolution: {integrity: sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==} + /@vue/runtime-dom@3.4.21: + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} dependencies: - '@vue/runtime-core': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 csstype: 3.1.3 dev: false - /@vue/server-renderer@3.4.15(vue@3.4.15): - resolution: {integrity: sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==} + /@vue/server-renderer@3.4.21(vue@3.4.21): + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} peerDependencies: - vue: 3.4.15 + vue: 3.4.21 dependencies: - '@vue/compiler-ssr': 3.4.15 - '@vue/shared': 3.4.15 - vue: 3.4.15 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.4.21 dev: false - /@vue/shared@3.4.15: - resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} dev: false - /@vue/theme@2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.15): + /@vue/theme@2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.21): resolution: {integrity: sha512-UUPD0XxlRa69Ytely8JEU/cu8Pae5f4UqZNIXANPN8KT6j/O23dCbOfp1cKlSn+Q/xXLYp0K+vRh4IqZjt/9BQ==} peerDependencies: vitepress: ^1.0.0-alpha.60 dependencies: '@docsearch/css': 3.5.2 '@docsearch/js': 3.5.2 - '@vueuse/core': 9.13.0(vue@3.4.15) + '@vueuse/core': 9.13.0(vue@3.4.21) body-scroll-lock: 3.1.5 normalize.css: 8.0.1 vitepress: 1.0.0-rc.33(@types/node@20.10.1)(terser@5.14.2) @@ -795,31 +795,31 @@ packages: - vue dev: false - /@vueuse/core@10.7.0(vue@3.4.15): + /@vueuse/core@10.7.0(vue@3.4.21): resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==} dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.7.0 - '@vueuse/shared': 10.7.0(vue@3.4.15) - vue-demi: 0.14.6(vue@3.4.15) + '@vueuse/shared': 10.7.0(vue@3.4.21) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/core@9.13.0(vue@3.4.15): + /@vueuse/core@9.13.0(vue@3.4.21): resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} dependencies: '@types/web-bluetooth': 0.0.16 '@vueuse/metadata': 9.13.0 - '@vueuse/shared': 9.13.0(vue@3.4.15) - vue-demi: 0.14.6(vue@3.4.15) + '@vueuse/shared': 9.13.0(vue@3.4.21) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/integrations@10.7.0(focus-trap@7.5.4)(vue@3.4.15): + /@vueuse/integrations@10.7.0(focus-trap@7.5.4)(vue@3.4.21): resolution: {integrity: sha512-rxiMYgS+91n93qXpHZF9NbHhppWY6IJyVTDxt4acyChL0zZVx7P8FAAfpF1qVK8e4wfjerhpEiMJ0IZ1GWUZ2A==} peerDependencies: async-validator: '*' @@ -860,10 +860,10 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.7.0(vue@3.4.15) - '@vueuse/shared': 10.7.0(vue@3.4.15) + '@vueuse/core': 10.7.0(vue@3.4.21) + '@vueuse/shared': 10.7.0(vue@3.4.21) focus-trap: 7.5.4 - vue-demi: 0.14.6(vue@3.4.15) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -877,19 +877,19 @@ packages: resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} dev: false - /@vueuse/shared@10.7.0(vue@3.4.15): + /@vueuse/shared@10.7.0(vue@3.4.21): resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==} dependencies: - vue-demi: 0.14.6(vue@3.4.15) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/shared@9.13.0(vue@3.4.15): + /@vueuse/shared@9.13.0(vue@3.4.21): resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} dependencies: - vue-demi: 0.14.6(vue@3.4.15) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -1280,8 +1280,8 @@ packages: engines: {node: 14 || >=16.14} dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -1739,8 +1739,8 @@ packages: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -2051,7 +2051,7 @@ packages: dependencies: '@types/node': 20.10.1 esbuild: 0.19.8 - postcss: 8.4.33 + postcss: 8.4.35 rollup: 4.6.0 terser: 5.14.2 optionalDependencies: @@ -2073,10 +2073,10 @@ packages: '@docsearch/css': 3.5.2 '@docsearch/js': 3.5.2 '@types/markdown-it': 13.0.7 - '@vitejs/plugin-vue': 5.0.0-beta.1(vite@5.0.10)(vue@3.4.15) + '@vitejs/plugin-vue': 5.0.0-beta.1(vite@5.0.10)(vue@3.4.21) '@vue/devtools-api': 6.5.1 - '@vueuse/core': 10.7.0(vue@3.4.15) - '@vueuse/integrations': 10.7.0(focus-trap@7.5.4)(vue@3.4.15) + '@vueuse/core': 10.7.0(vue@3.4.21) + '@vueuse/integrations': 10.7.0(focus-trap@7.5.4)(vue@3.4.21) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 6.3.0 @@ -2084,7 +2084,7 @@ packages: shikiji: 0.9.12 shikiji-transformers: 0.9.12 vite: 5.0.10(@types/node@20.10.1)(terser@5.14.2) - vue: 3.4.15 + vue: 3.4.21 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -2113,7 +2113,7 @@ packages: - universal-cookie dev: false - /vue-demi@0.14.6(vue@3.4.15): + /vue-demi@0.14.6(vue@3.4.21): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true @@ -2125,22 +2125,22 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.15 + vue: 3.4.21 dev: false - /vue@3.4.15: - resolution: {integrity: sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==} + /vue@3.4.21: + resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.4.15 - '@vue/compiler-sfc': 3.4.15 - '@vue/runtime-dom': 3.4.15 - '@vue/server-renderer': 3.4.15(vue@3.4.15) - '@vue/shared': 3.4.15 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/runtime-dom': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21) + '@vue/shared': 3.4.21 dev: false /which@2.0.2: diff --git a/src/about/community-guide.md b/src/about/community-guide.md index e0eb52674..b08f77419 100644 --- a/src/about/community-guide.md +++ b/src/about/community-guide.md @@ -23,7 +23,7 @@ Vue.js 的社区正在急速增长中,如果你正在阅读本文,这说明 ### 获得帮助 {#get-support} -- [Discord 聊天室](https://chat.vuejs.org/):一个 Vue 开发者相互认识和实时聊天的地方。 +- [Discord 聊天室](https://discord.com/invite/vue):一个 Vue 开发者相互认识和实时聊天的地方。 - [论坛](https://forum.vuejs.org/):咨询与 Vue 及其生态的相关问题的最佳地点。 - [DEV 社区](https://dev.to/t/vue):在 Dev.to 分享与讨论 Vue 的相关话题。 - [Meetup](https://events.vuejs.org/meetups):想在当地找到像你一样的 Vue.js 爱好者吗?有兴趣成为社区领袖吗?这里就有你所需要的支持和帮助! diff --git a/src/api/compile-time-flags.md b/src/api/compile-time-flags.md index 71cec1727..bc10d7d18 100644 --- a/src/api/compile-time-flags.md +++ b/src/api/compile-time-flags.md @@ -26,7 +26,7 @@ outline: deep 在生产环境中启用/禁用开发者工具支持。启用会在打包结果中包含更多代码,因此建议仅在调试时启用此功能。 -## `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` {#VUE_PROD_HYDRATATION_MISMATCH_DETAILS} +## `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` {#VUE_PROD_HYDRATION_MISMATCH_DETAILS} - **默认值:**`false` diff --git a/src/ecosystem/newsletters.md b/src/ecosystem/newsletters.md index 9c3a0fef7..fb85aad1b 100644 --- a/src/ecosystem/newsletters.md +++ b/src/ecosystem/newsletters.md @@ -7,6 +7,5 @@ - [Jakub Andrzejewski](https://dev.to/jacobandrewsky) - [Weekly Vue News](https://weekly-vue.news/) - [Vue.js Developers Newsletter](https://vuejsdevelopers.com/newsletter/) -- [VueDose](https://vuedose.tips/articles#newsletter) 如果你还知道其他优秀的内容,请使用[该链接](https://github.com/vuejs/docs/edit/main/src/ecosystem/newsletters.md)提交一个 pull request! diff --git a/src/ecosystem/themes/themes.json b/src/ecosystem/themes/themes.json index 563f52610..ed48d3911 100644 --- a/src/ecosystem/themes/themes.json +++ b/src/ecosystem/themes/themes.json @@ -45,48 +45,6 @@ "description": "Premium Vue.js UI Kit", "url": "https://www.creative-tim.com/product/vue-now-ui-kit-pro?affiliate_id=116187", "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-now-ui-kit-pro/vue-now-ui-kit-pro.jpg" - }, - { - "name": "Vue Now UI Dashboard Pro", - "price": 59, - "description": "Premium Vue.js Admin Template", - "url": "https://www.creative-tim.com/product/vue-now-ui-dashboard-pro?affiliate_id=116187", - "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-now-ui-dashboard-pro/vue-now-ui-dashboard-pro.jpg" - }, - { - "name": "Vue Now UI Kit", - "price": 0, - "description": "Free Vue.js UI Kit", - "url": "https://www.creative-tim.com/product/vue-now-ui-kit?affiliate_id=116187", - "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-now-ui-kit/vue-now-ui-kit.jpg" - }, - { - "name": "Vue Light Bootstrap Dashboard Pro", - "price": 49, - "description": "Premium Vue.js Admin Template", - "url": "https://www.creative-tim.com/product/vue-light-bootstrap-dashboard-pro?affiliate_id=116187", - "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-light-bootstrap-dashboard-pro/vue-light-bootstrap-dashboard-pro.jpg" - }, - { - "name": "Vue Material Dashboard Pro", - "price": 59, - "description": "Premium Vue.js Admin Template", - "url": "https://www.creative-tim.com/product/vue-material-dashboard-pro?affiliate_id=116187", - "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-material-dashboard-pro/vue-material-dashboard-pro.jpg" - }, - { - "name": "Vue Material Kit Pro", - "price": 89, - "description": "Premium Vue.js UI Kit", - "url": "https://www.creative-tim.com/product/vue-material-kit-pro?affiliate_id=116187", - "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-material-kit-pro/vue-material-kit-pro.jpg" - }, - { - "name": "Vue Light Bootstrap Dashboard", - "price": 0, - "description": "Free Vue.js Admin Template", - "url": "https://www.creative-tim.com/product/vue-light-bootstrap-dashboard?affiliate_id=116187", - "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-light-bootstrap-dashboard/vue-light-bootstrap-dashboard.jpg" } ] }, @@ -136,139 +94,6 @@ "description": "Premium Vue.js Plugin", "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/color-picker.jpg", "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/cookies-management/?utm_ref_id=82665", - "name": "Vue Cookies Management Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/cookie.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/countdown/?utm_ref_id=82665", - "name": "Vue Countdown Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/countdown.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/data-parser/?utm_ref_id=82665", - "name": "Vue Data Parser Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/data-parser.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/drag-and-drop/?utm_ref_id=82665", - "name": "Vue Drag and Drop Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/drag-and-drop.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/dummy/?utm_ref_id=82665", - "name": "Vue Dummy Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/dummy.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/ecommerce-gallery/?utm_ref_id=82665", - "name": "Vue eCommerce Gallery Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/ecommerce-gallery.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/file-upload/?utm_ref_id=82665", - "name": "Vue File Upload Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/file-upload.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/filters/?utm_ref_id=82665", - "name": "Vue Filters Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/filters.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/input-mask/?utm_ref_id=82665", - "name": "Vue Input Mask Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/input-mask.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/mention/?utm_ref_id=82665", - "name": "Vue Mention Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/mention.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/multi-item-carousel/?utm_ref_id=82665", - "name": "Vue Multi Item Carousel Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/multi-item-carousel.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/onboarding/?utm_ref_id=82665", - "name": "Vue Onboarding Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/onboarding.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/parallax/?utm_ref_id=82665", - "name": "Vue Parallax Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/parallax.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/storage-management/?utm_ref_id=82665", - "name": "Vue Storage Management Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/storage-management.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/table-editor/?utm_ref_id=82665", - "name": "Vue Table Editor Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/table-editor.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/transfer/?utm_ref_id=82665", - "name": "Vue Transfer Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/transfer.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/tree-view/?utm_ref_id=82665", - "name": "Vue Tree View Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/treeview.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/vector-maps/?utm_ref_id=82665", - "name": "Vue Vector Maps Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/vector-maps.jpg", - "price": 199 - }, - { - "url": "https://mdbootstrap.com/docs/vue/plugins/wysiwyg-editor/?utm_ref_id=82665", - "name": "Vue WYSIWYG Bootstrap", - "description": "Premium Vue.js Plugin", - "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/wysiwyg.jpg", - "price": 199 } ] }, @@ -318,62 +143,6 @@ "description": "PrimeOne Design Admin Template", "url": "https://www.primefaces.org/layouts/diamond-vue?af_id=4218", "image": "https://www.primefaces.org/vue-templates/diamond.jpg" - }, - { - "name": "Poseidon", - "price": 59, - "description": "PrimeOne Design Admin Template", - "url": "https://www.primefaces.org/layouts/poseidon-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/poseidon.jpg" - }, - { - "name": "Verona", - "price": 49, - "description": "PrimeOne Design Admin Template", - "url": "https://www.primefaces.org/layouts/verona-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/verona.jpg" - }, - { - "name": "Sapphire", - "price": 49, - "description": "Material Design Admin Template", - "url": "https://www.primefaces.org/layouts/sapphire-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/sapphire.jpg" - }, - { - "name": "Avalon", - "price": 49, - "description": "Bootstrap Inspired Admin Template", - "url": "https://www.primefaces.org/layouts/avalon-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/avalon.jpg" - }, - { - "name": "Serenity", - "price": 49, - "description": "Material Design Admin Template", - "url": "https://www.primefaces.org/layouts/serenity-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/serenity.jpg" - }, - { - "name": "Babylon", - "price": 49, - "description": "Admin Template with Extensive Options", - "url": "https://www.primefaces.org/layouts/babylon-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/babylon.jpg" - }, - { - "name": "Roma", - "price": 39, - "description": "Admin Template with a Clean Design System", - "url": "https://www.primefaces.org/layouts/roma-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/roma.jpg" - }, - { - "name": "Prestige", - "price": 39, - "description": "Highly Customizable Admin Template", - "url": "https://www.primefaces.org/layouts/prestige-vue?af_id=4218", - "image": "https://www.primefaces.org/vue-templates/prestige.jpg" } ] }, @@ -425,5 +194,104 @@ "image": "https://flatlogic.com/assets/templates/light_blue_vue_full_nodejs-06f941c849f0a83a3c0d38c728101eace06a7515ea048f12bcd91f165280246f.webp" } ] - } + }, + { + "name": "WrapPixel", + "description": "Check out developer friendly vue js admin dashboard templates built by our partners from [WrapPixel](https://wrappixel.com). Download them to start building your real time web application quickly to save hundreds of hours in development and design.", + "seeMoreUrl": "https://www.wrappixel.com/templates/category/vuejs-templates/", + "products": [ + { + "name": "Spike Free VueJs Admin Template", + "price": 0, + "description": "Free & Open Source VueJs Admin Template", + "url": "https://www.wrappixel.com/templates/spike-free-vuejs-admin-template/?ref=320", + "image": "https://www.wrappixel.com/wp-content/uploads/edd/2023/10/spike-free-vuetify-vuejs-admin-template-wp.jpg" + }, + { + "name": "Spike Vue3 Admin Dashboard", + "price": 49, + "description": "Powerful Vue3 Dashboard Theme", + "url": "https://www.wrappixel.com/templates/spike-vuejs-admin-dashboard/?ref=320", + "image": "https://www.wrappixel.com/wp-content/uploads/edd/2023/09/spike-vuejs-admin-dashboard-prev-img.jpg" + }, + { + "name": "MaterialPro Vue3 Admin Dashboard", + "price": 49, + "description": "Vue 3 + Vuetify 3 + Vite + Typescript", + "url": "https://www.wrappixel.com/templates/materialpro-vuetify-admin/?ref=320", + "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/05/materialpro-vuejs-dashboard-template-20.jpg" + }, + { + "name": "Free MaterialPro Vuetify Admin", + "price": 0, + "description": "Free Vuetify Dashboard Template", + "url": "https://www.wrappixel.com/templates/materialpro-vuetify-admin-lite/?ref=320", + "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/05/materialpro-vuejs-lite-admin-wp-20.jpg" + }, + { + "name": "Free AdminPro VueJs Lite", + "price": 0, + "description": "Free & Open Source VueJs Admin Template", + "url": "https://www.wrappixel.com/templates/adminpro-vuetify-admin-lite/?ref=320", + "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/11/feature_image.jpg" + }, + { + "name": "AdminPro Vue3 + Vuetify Dashboard", + "price": 49, + "description": "Vue3 + Vite + Vuetify + Typescript", + "url": "https://www.wrappixel.com/templates/adminpro-vuetify-dashboard/?ref=320", + "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/10/adminpro-vuetify-dasboard-template-y.jpg" + } + ] + }, + { + "name": "CodedThemes", + "description": "Explore Vue.js admin dashboard templates crafted with developers in mind by our partners at [CodedThemes](https://codedthemes.com). Download now to expedite the development of your real-time web applications, saving you countless hours in design and development.", + "seeMoreUrl": "https://codedthemes.com/item/category/templates/vue-template/", + "products": [ + { + "name": "Free Berry Vuetify VueJs Admin Template", + "price": 0, + "description": "Free & Open Source VueJs Admin Template with well known desing of Berry", + "url": "https://codedthemes.com/item/berry-free-vuetify-vuejs-admin-template/?ref=evan.vuejs", + "image": "https://codedthemes.com/wp-content/uploads/2024/03/Berry-free-vue.png" + }, + { + "name": "Berry Vue3 Admin Dashboard", + "price": 59, + "description": "Discover our visually captivating Vue 3 Dashboard Theme!", + "url": "https://codedthemes.com/item/berry-vue-admin-dashboard/?ref=evan.vuejs", + "image": "https://codedthemes.com/wp-content/uploads/2024/03/Berry-pro-vue.png" + }, + { + "name": "Mantis Vue3 Admin Dashboard", + "price": 59, + "description": "Simple yet rebust to start any development with latest VueJs and Vuetify", + "url": "https://codedthemes.com/item/mantis-vue-admin-template/?ref=evan.vuejs", + "image": "https://codedthemes.com/wp-content/uploads/2024/03/Mantis-pro-vue.png" + }, + { + "name": "Free Mantis Vuetify VueJs Admin Template", + "price": 0, + "description": "Free Vuetify Dashboard Template with simplest design and code", + "url": "https://codedthemes.com/item/mantis-free-vuetify-vuejs-admin-template/?ref=evan.vuejs", + "image": "https://codedthemes.com/wp-content/uploads/2024/03/Mantis-free-vue.png" + }, + { + "name": "Free Able Pro VueJs", + "price": 0, + "description": "Free & Open Source Able pro VueJs Admin Template", + "url": "https://codedthemes.com/item/able-pro-free-vuejs-admin-dashboard/?ref=evan.vuejs", + "image": "https://codedthemes.com/wp-content/uploads/2024/03/Able-pro-free-vue.png" + }, + { + "name": "Able Pro Vue3 + Vuetify Dashboard", + "price": 11, + "description": "Vue3 + Vite + Vuetify + Typescript", + "url": "https://codedthemes.com/item/able-pro-vuejs-admin-dashboard/?ref=evan.vuejs", + "image": "https://codedthemes.com/wp-content/uploads/2024/03/Able-pro-pro-vue.png" + } + ] +} + ] diff --git a/src/examples/ExampleRepl.vue b/src/examples/ExampleRepl.vue index f54d912cb..fc56e9922 100644 --- a/src/examples/ExampleRepl.vue +++ b/src/examples/ExampleRepl.vue @@ -1,16 +1,31 @@