Forwarded from Vue Feed - Канал русскоговорящего сообщества (Grigorii K. Shartsev)
Vue 3.5.0-alpha.3 - Появился новый компосабл
#vue_3_5 #changelog
Типичный use-case - id элементов, например, форм и атрибуты для доступности.
Результат получается невоспроизводимым, что усложняет тестирование и не работает на SSR
Такое решение может приводить к дублированию ID. Например, и в вашем приложении, и в UI фреймворке могли сделать
Чтобы облегчить жизнь разработчиков, добавили долгожданный
- PR: https://github.com/vuejs/core/pull/11404/
useId()
для генерации ID в компонентах.#vue_3_5 #changelog
const inputId = useId()
Зачем генерировать ID?
Типичный use-case - id элементов, например, форм и атрибуты для доступности.
Почему не просто `Math.random()` или `nanoid()`?
Результат получается невоспроизводимым, что усложняет тестирование и не работает на SSR
Почему не просто `id++`?
Такое решение может приводить к дублированию ID. Например, и в вашем приложении, и в UI фреймворке могли сделать
input-label-${id++}
.Чтобы облегчить жизнь разработчиков, добавили долгожданный
useId
, возвращающий уникальный ID, префикс которого можно настроить в конфиге Vue приложения.const app = createApp(App)
app.config.idPrefix = 'my-app'
// useId() === "my-app:0"
- PR: https://github.com/vuejs/core/pull/11404/
GitHub
feat(runtime-core): useId() by yyx990803 · Pull Request #11404 · vuejs/core
Similar to React's useId, this composable returns a unique ID that can be used for form elements and accessibility attributes.
The generated IDs look like v:1-2-3 and are unique across each...
The generated IDs look like v:1-2-3 and are unique across each...
🔥12👍2😎2