diff --git a/content/7.blog/19.v3-9.md b/content/7.blog/19.v3-9.md index 01ed3c107..f8552b579 100644 --- a/content/7.blog/19.v3-9.md +++ b/content/7.blog/19.v3-9.md @@ -1,6 +1,6 @@ --- title: Nuxt 3.9 -description: Nuxt 3.9 is out - a Christmas gift from the Nuxt team bringing Vite 5, interactive server components, new composables, a new loading API and more. +description: Вышел Nuxt 3.9 — рождественский подарок от команды Nuxt, включающий Vite 5, интерактивные серверные компоненты, новые композаблы, новый API загрузки и многое другое. navigation: false image: /assets/blog/v3.9.png authors: @@ -12,21 +12,21 @@ date: 2023-12-25T00:00:00.000Z category: Релиз --- -A very merry Christmas to you and yours from all Nuxters involved in this release! 🎁🎄 +Веселого Рождества вам и вашим близким от всех Накстеров, принявших участие в этом релизе! 🎁🎄 -We have lots of features packed into v3.9 and can't wait for you to try them out. +В версию 3.9 включено множество возможностей, и мы не можем дождаться, когда вы их опробуете. ### ⚡️ Vite 5 -This release comes with Vite 5 and Rollup 4 support. Module authors may need to check to ensure that any vite plugins you're creating are compatible with these latest releases. +Этот релиз поставляется с поддержкой Vite 5 и Rollup 4. Авторам модулей может потребоваться проверить, совместимы ли все создаваемые вами плагины Vite с этими последними релизами. -This comes with a whole host of great improvements and bug fixes - check out [the Vite changelog](https://vitejs.dev/guide/migration.html#migration-from-v4) for more info. +В него включен целый ряд замечательных улучшений и исправлений ошибок — для получения более подробной информации ознакомьтесь с [журналом изменений Vite](https://vitejs.dev/guide/migration.html#migration-from-v4). -### ✨ Vue 3.4 ready +### ✨ Готов к Vue 3.4 -This release is tested with the latest Vue 3.4 release candidate, and has the necessary configuration to take advantage of [new features in Vue 3.4](https://blog.vuejs.org/posts/vue-3-4), including debugging hydration errors in production (just set `debug: true`) in your Nuxt config. +Этот релиз протестирован с последним релиз-кандидатом Vue 3.4 и имеет необходимую конфигурацию для использования [новых функций Vue 3.4](https://blog.vuejs.org/posts/vue-3-4), включая отладку ошибок гидратации в продакшене (просто установите `debug: true`) в конфигурации Nuxt. -👉 To take advantage, just update your `vue` version once v3.4 is released, or try out the release candidate today: +👉 Чтобы воспользоваться преимуществами, просто обновите версию `vue` после выхода версии 3.4 или попробуйте релиз-кандидат уже сегодня: ```json [package.json] { @@ -38,9 +38,9 @@ This release is tested with the latest Vue 3.4 release candidate, and has the ne } ``` -### 🏝️ Interactive Server Components +### 🏝️ Интерактивные серверные компоненты -This is a highly-experimental update, but it's now possible to play around with interactive components within Nuxt server components. You'll need to enable this new feature additionally to component islands: +Это очень экспериментальное обновление, но теперь можно поиграться с интерактивными компонентами в серверных компонентах Nuxt. Вам нужно будет включить эту новую функцию в дополнение к компонентам-островам: ```ts [nuxt.config.ts] export default defineNuxtConfig({ @@ -52,17 +52,17 @@ export default defineNuxtConfig({ }) ``` -Now, within a server component, you can specify components to hydrate by using the `nuxt-client` directive: +Теперь в серверном компоненте вы можете указать компоненты для гидратации с помощью директивы `nuxt-client`: ```vue [components/SomeComponent.server.vue] ``` -We're pretty excited about this one - so do let us know how you're using it! 🙏 +Мы в восторге от этой функции — так что дайте нам знать, как вы ее используете! 🙏 -### 🔥 Automatic Server Optimisations +### 🔥 Автоматическая оптимизация сервера -We now use Vite's new AST-aware 'define' to perform more accurate replacements on server-side code, meaning code like this will no longer throw an error: +Теперь мы используем новый метод Vite 'define', поддерживающий AST, для выполнения более точных замен в коде на стороне сервера, что означает, что такой код больше не будет выдавать ошибку: ```vue [app.vue] ``` -This hasn't been possible until now because we haven't wanted to run the risk of accidentally replacing normal words like `document` within non-JS parts of your apps. But Vite's new `define` functionality is powered by `esbuild` and is syntax-aware, so we feel confident in enabling this functionality. Nevertheless, you can opt out if you need to: +До сих пор это было невозможно, поскольку мы не хотели рисковать случайной заменой обычных слов, таких как `document`, в не-JS-частях ваших приложений. Но новая функциональность `define` в Vite работает на `esbuild` и учитывает синтаксис, поэтому мы уверены в том, что включим эту функциональность. Тем не менее, вы можете отказаться, если вам нужно: ```ts [nuxt.config.ts] export default defineNuxtConfig({ @@ -84,55 +84,55 @@ export default defineNuxtConfig({ }) ``` -### 🚦 Granular Loading API +### 🚦 Точечное API загрузки -We now have a new hook-based system for [``](/docs/api/components/nuxt-loading-indicator), including a `useLoadingIndicator` composable that lets you control/stop/start the loading state. You can also hook into `page:loading:start` and `page:loading:end` if you prefer. +Теперь у нас есть новая система на основе хуков для [``](/docs/api/components/nuxt-loading-indicator), включая `useLoadingIndicator`, который позволяет вам контролировать/останавливать/запускать состояние загрузки. Вы также можете подключиться к `page:loading:start` и `page:loading:end`, если хотите. ::tip -You can read more [in the docs](/docs/api/composables/use-loading-indicator) and in the original PR ([#24010](https://github.com/nuxt/nuxt/pull/24010)). +Подробнее можно прочитать [в документации](/docs/api/composables/use-loading-indicator) и в оригинальном PR ([#24010](https://github.com/nuxt/nuxt/pull/24010)). :: -### 🏁 Run single events in `callOnce` +### 🏁 Запуск отдельных событий в `callOnce` -Sometimes you only want to run code once, no matter how many times you load a page - and you don't want to run it again on the client if it ran on the server. +Иногда нужно запустить код только один раз, независимо от того, сколько раз вы загружаете страницу, и вы не хотите запускать его снова на клиенте, если он уже выполнялся на сервере. -For this, we have a new utility: [`callOnce`](/docs/api/utils/call-once) ([#24787](https://github.com/nuxt/nuxt/pull/24787)). +Для этого у нас есть новая утилита: [`callOnce`](/docs/api/utils/call-once) ([#24787](https://github.com/nuxt/nuxt/pull/24787)). ```vue [app.vue] ``` -Note that this utility is context-aware so it _must_ be called in component setup function or Nuxt plugin, as with other Nuxt composables. +Обратите внимание, что эта утилита зависит от контекста, поэтому ее _нужно_ вызывать в функции настройки компонента или плагине Nuxt, как и композаблы Nuxt. ::read-more{to="/docs/api/utils/call-once"} :: -### 🚨 Error Types +### 🚨 Типы ошибок -For a while now, errors returned by `useAsyncData` and `useFetch` have been typed pretty generically as `Error`. We've significantly improved the type possibilities for them to make them more accurate in terms of what you'll actually receive. (We normalise errors with the `h3` `createError` utility under the hood, so they can be serialised from server to client, for example.) +Некоторое время назад ошибки, возвращаемые `useAsyncData` и `useFetch`, были типизированы довольно обобщенно как `Error`. Мы значительно улучшили возможности типов для них, чтобы сделать их более точными с точки зрения того, что вы фактически получите. ("Под капотом" мы нормализуем ошибки с помощью утилиты `h3` `createError`, поэтому, например, их можно сериализовать с сервера на клиент.) -We've tried to implement the type change in a backwards compatible way, but you might notice that you need to update the generic if you're manually configuring the generics for these composables. See ([#24396](https://github.com/nuxt/nuxt/pull/24396)) for more information, and do let us know if you experience any issues. +Мы попытались реализовать изменение типа сохранив обратную совместимость, но вы могли заметить, что нужно обновить дженерик, если вы вручную настраиваете дженерики для этих композаблов. См. ([#24396](https://github.com/nuxt/nuxt/pull/24396)) для получения дополнительной информации, и сообщите нам, если у вас возникнут какие-либо проблемы. -### 🔥 Schema Performance +### 🔥 Производительность схемы -We've taken some time in this release to make some minor performance improvements, so you should notice some things are a bit faster. This is an ongoing project and we have ideas for improving initial load time of the Nuxt dev server. +В этом релизе мы потратили некоторое время на незначительные улучшения производительности, так что вы должны заметить, что некоторые вещи стали работать немного быстрее. Это постоянный проект, и у нас есть идеи по улучшению начальной загрузки dev-сервера Nuxt. -## ✅ Upgrading +## ✅ Обновление -As usual, our recommendation for upgrading is to run: +Как обычно, мы рекомендуем выполнить обновление следующим образом: ```sh npx nuxi upgrade ``` -## Full Release Notes +## Полное описание релиза ::read-more --- @@ -140,9 +140,9 @@ to: https://github.com/nuxt/nuxt/releases/tag/v3.9.0 color: gray icon: i-simple-icons-github --- -Read the full release notes of Nuxt `v3.9.0`. +Читайте полное описание релиза Nuxt `v3.9.0`. :: -Thank you for reading this far! We hope you enjoy the new release. Please do let us know if you have any feedback or issues. +Спасибо, что дочитали до этого места! Надеемся, вам понравится новый релиз. Пожалуйста, дайте нам знать, если у вас есть какие-либо отзывы или проблемы. -**Happy Nuxting ✨** +**Счастливого Накстинга ✨**