169 похожих чатов

Всем привет. В одном из подскастов русскоязычная разработчица из гитлаба

(она так же и разработчик в команде vue js), сказала , что если человек в пропсы прокидывает функции - это плохо и это антипаттерн(такой код она в прод не пускает) , но только не объяснила почему , Гугл ничего особо не дал. Мб кто можешь сказать почему это плохо ? (Кроме - "нуууу, во вью лучше использовать эвенты)

26 ответов

11 просмотров

Чисто моё мнение, основанное только на моей практике: Компонент, который в пропсах ожидает функции, труднее переиспользовать. Например, я хочу использовать твой компонент, но я не хочу функции пробрасывать. Но мне придётся создать пустые функции и бросать их в пропсах. В случае же $emit я как пользователь твоего компонента могу выбирать, на какие $emit я хочу подписываться, а на какие не хочу. Твой компонент становится проще использовать

Vite4eg
Чисто моё мнение, основанное только на моей практи...

Могу добавить еще что сам движок v8 не сможет оптимизировать это нормально

ты можешь у нее спросить напрямую, она есть в nuxt чатике, nataliaTeplukhina

Nikita Derevskov
Почему ?

Самая функция не станет горячее по причине постоянного ре рендеринга при изменение данных

Nikita-Derevskov Автор вопроса
Vite4eg
Чисто моё мнение, основанное только на моей практи...

Если ты не хочешь пробрасывать функции , но хочешь использовать компонент, то не очень то и хочешь ? Ну и плюс можно учесть этот кейс в компоненте , что какие то функции могут быть не отправлены (а мб это доп работа ?) Но с другой стороны , если делать через события и я хочу прокинуть через 2 компонента , то получается я два раза буду писать одинаковые функции , которые генерируют эвенты ? Вместо того , чтобы просто пробросить функцию

Nikita-Derevskov Автор вопроса
alex Grinvich
Самая функция не станет горячее по причине постоян...

Ок , надо будет разобраться с этим подробнее , спасибо !

alex Grinvich
Самая функция не станет горячее по причине постоян...

А кстати, как это онлайн кеширование работает? Прям при сборке функция кучу раз прогоняется и оптимизируется? Если нет, то зачем оно нужно - ведь далеко не каждая функция запускается по тысячи раз за одну сессию. Помогает ли ts в этом? Сколько не читал, так и не понял этот момент.

Nikita-Derevskov Автор вопроса
alex Grinvich
Ну по этой причине надо использовать state

Т.е если ты пробрасываешь через даже 2 компонента то state ?

Nikita Derevskov
Т.е если ты пробрасываешь через даже 2 компонента ...

ты сможешь обратится к state откуда хочешь (vuex)

Nikita-Derevskov Автор вопроса
alex Grinvich
ты сможешь обратится к state откуда хочешь (vuex)

Это то понятно. Но тогда Стейт же раздувается до небес и надо это менеджерить

Ivan Tseloban
А кстати, как это онлайн кеширование работает? Пря...

если невдаватся в подробности сначала кодируется в байт код а потом компилятор jit если функция много рас вызывается оптимизирует ее и превращает в горячую

Nikita-Derevskov Автор вопроса
alex Grinvich
для этого есть namespace

Да , и эта практика лучше чем пробрасывать эвенты через 2 компонента?

Nikita Derevskov
Да , и эта практика лучше чем пробрасывать эвенты ...

Создается namespace в vuex и работаешь только с компонентами которыми хочешь на другую фичу вешаешь другой namespace и нету проблем администрирования

alex Grinvich
если невдаватся в подробности сначала кодируется в...

Ну то есть непосредственно в работе? То есть с пропсами по сути заморачиваться смысла мало, если функция там статичная и компонент рендерится один раз, например?

Ivan Tseloban
Ну то есть непосредственно в работе? То есть с про...

ну по факту подбрасывание функции props антипатерн лучше решение использовать state(vuex)

alex Grinvich
ну по факту подбрасывание функции props антипатерн...

Согласен, мне просто инлайн кеш интересен)

Ivan Tseloban
Согласен, мне просто инлайн кеш интересен)

Это уже архитектура тут просто глянь доклад новый по v8

alex Grinvich
ну по факту подбрасывание функции props антипатерн...

Во Vue3 вообще composition-api позволит простые штуки без всяких сторов пробрасывать

Vite4eg
Во Vue3 вообще composition-api позволит простые шт...

Надо помнить что там новая архитектура на proxy

alex Grinvich
Надо помнить что там новая архитектура на proxy

Ну а чем это сильно скажется на разработке?

Nikita-Derevskov Автор вопроса

Если кому то интересно , что ответил автор данного высказывания: "Потому что это нарушает инкапсуляцию компонентов и unidirectional data flow Особенно если переданный метод меняет состояние родителя Эмитьте ивенты, слушайте и дергайте метод" Ок, я с ней согласен

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта