Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Локализация content/7.blog/9.v3-9.md #67

Merged
merged 1 commit into from
Aug 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 34 additions & 34 deletions content/7.blog/19.v3-9.md
Original file line number Diff line number Diff line change
@@ -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:
Expand All @@ -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]
{
Expand All @@ -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({
Expand All @@ -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]
<NuxtLink :to="/" nuxt-client />
```

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]
<script setup lang="ts">
Expand All @@ -72,7 +72,7 @@ if (document) {
</script>
```

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({
Expand All @@ -84,65 +84,65 @@ export default defineNuxtConfig({
})
```

### 🚦 Granular Loading API
### 🚦 Точечное API загрузки

We now have a new hook-based system for [`<NuxtLoadingIndicator>`](/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.
Теперь у нас есть новая система на основе хуков для [`<NuxtLoadingIndicator>`](/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]
<script setup>
const websiteConfig = useState('config')

await callOnce(async () => {
console.log('This will only be logged once')
console.log('Это будет зарегистрировано только один раз.')
websiteConfig.value = await $fetch('https://my-cms.com/api/website-config')
})
</script>
```

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
---
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 ✨**
**Счастливого Накстинга ✨**
Loading