Size: a a a

JavaScript.Ninja

2021 October 27

IK

Illya Klymov in JavaScript.Ninja
Но вечером
источник

IK

Illya Klymov in JavaScript.Ninja
Сейчас задница в огне по другим таскам
источник

Ю

Юра in JavaScript.Ninja
А какой апдейт по курсам? Интересует Node.js/JS курсы
источник

АЯ

Алексей Яковлев... in JavaScript.Ninja
Ребятки вопрос про VUE - еслть ли  него такой инструмент?
Задача следующая - нужно создать форму которая сама себя собирает из конфигурации которая я ей вскармливаю  форме.
В нем массив объектов которые описывают элементы которые нужно генерировать в форме допустим config = [{component: ‘input’}, {component: ‘button’}] инпуты кнопки чекбоксы. И передаю карту с компонентами mapComponents = {input: InputComponent, button: ButtonComponent}.  <Form :config=”config” :map=”mapCompoent”>. Внутри Формы я пишу динамический компонент
<component v-for=”elem in config” :is=”map[elem.component]” /> - все отлично собираеться все ок. Но задача такая, что у меня могут быть разные компоненты в которые например перекидываю поведение или подписываюсь на поле и приходиться писать if типа
<div  v-for=”elem in config”>
  <component v-if=”elem.isField” :is=”map[elem.component]” @[elem.event]=”...”/>
  <component v-if-else=”elem.isCmd” :is=”map[elem.component]” :[elem.callback]=”...”/>
  <component .../>  и т.д.
<div/>

вопрос есть ли способ не писать такие ифы а както динамически решать что прописывать в эти компоненты словно IoC - контейнер. Другими словами возможно ли реализовать что-то типо IoC - контейнера в шаблоне VUE??? Спасибо!
источник

IK

Illya Klymov in JavaScript.Ninja
А что мешает рядом с компонентами передавать листенеры на которые надо подписываться?
источник

IK

Illya Klymov in JavaScript.Ninja
IOC конечно есть, просто смысл
источник

АЯ

Алексей Яковлев... in JavaScript.Ninja
Не совсем понял🤔 - прости. Что ты имеешь ввиду
источник

АЯ

Алексей Яковлев... in JavaScript.Ninja
Чтобы не писать is в динамическом компоненте в шаблоне
источник

АЯ

Алексей Яковлев... in JavaScript.Ninja
if*
источник

IK

Illya Klymov in JavaScript.Ninja
Ну я так понял проблема в том что у разных компонентов надо на разные события подписываться
источник

KR

Kirill Romanov in JavaScript.Ninja
добавляй пропсы компоненту как-то вроде v-bind="getListeners(elem)"
источник

KR

Kirill Romanov in JavaScript.Ninja
аналогично и с событиями
источник

АЯ

Алексей Яковлев... in JavaScript.Ninja
Не только возможно передавать какие-то команды сконфигурированные. другими словами одним <component> не описать и приходиться ставить if-else
источник

IK

Illya Klymov in JavaScript.Ninja
Не понимаю
источник

АЯ

Алексей Яковлев... in JavaScript.Ninja
подписаться на разные события не проблема @[elem.event] - из конфига, Проблема в том что где-то не нужно этого делать или предавать пропс дальше например а в другом не нужно, понять это просто смотря конфигурацию сомпонента а вот как без if  это описать в шаблоне?
источник

KR

Kirill Romanov in JavaScript.Ninja
Переслано от Kirill Romanov
добавляй пропсы компоненту как-то вроде v-bind="getListeners(elem)"
источник

АЯ

Алексей Яковлев... in JavaScript.Ninja
Я тебя не игрнорирую )) просто пытаюсь понять )))) Спасибо пытаюсь понять как мне это поможет )
источник

KR

Kirill Romanov in JavaScript.Ninja
опечатался только, getProps, конечно
источник

KR

Kirill Romanov in JavaScript.Ninja
и что-то вроде v-on="getListeners(elem)"
источник

KR

Kirill Romanov in JavaScript.Ninja
у меня достаточно много подобного кода, где компоненты динамически создаются по конфигурации
источник