> Какие способы динамического рендера компонентов и директивы используются во Vue (Vue.js)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: 1221 Systems
Стек: Vue.js
> Пример ответа
Во Vue динамический рендер компонентов и директив реализуется несколькими способами:
-
Динамические компоненты через
<component :is="...">- позволяет переключать компоненты на лету, передавая строку с именем или сам объект компонента. Например:<component :is="currentComponent" />. -
Условный рендер с директивами
v-if,v-else-if,v-elseиv-show.v-ifполностью монтирует/удаляет элемент из DOM, аv-showтолько переключаетdisplay: none. -
Динамические директивы - можно передавать имя директивы через переменную, используя синтаксис
v-[dynamicDirective]. Например:v-[myDirective]="value". -
Рендер-функции и JSX - позволяют программно создавать компоненты и директивы через
h()(createElement) или JSX-синтаксис, что даёт полный контроль над динамикой. -
Слоты (
<slot>) и именованные слоты — динамически определяют контент внутри компонента, а такжеv-slotс динамическим именем:v-slot:[slotName]. -
Функциональные компоненты - легковесные компоненты без состояния, которые могут динамически рендериться на основе входных данных.
Пример динамического компонента с директивой:
<template> <component :is="currentView" v-if="showComponent" /> </template> <script> export default { data() { return { currentView: 'MyComponent', showComponent: true } } } </script>
> Похожие задачи по frontend
Что гарантирует аргумент key в списках Vue и влияет ли он на порядок элементов
Какие хуки жизненного цикла существуют во Vue и для чего они нужны
Кэшируются ли вычисляемые свойства во Vue и как работает мемоизация
Какие тактические шаблоны DDD вы знаете и применяли
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью