→ Products.vue → Product.vue
В конечном Product.vue есть простейший метод для выбора фона элемента.
И теперь в главном App.vue вдруг неожиданно потребовалась та же логика.
Насколько я понимаю, нужно этот метод сделать в App.vue и прокидывать сквозь все три дочерних уровня, добавляя всем в defineProps(). Но это же дичь. Может есть способ из любого дочернего компонента обратиться в переменную/метод высшего компонента?
На всякий случай обозначу, что новичок во Vue.
provide/inject думаю решит вашу проблему
если метод никак не связан с инстансом компонента или связан слабо, то можно вынести его в утилиты и импортировать в нужные компоненты, как обычную функцию, а зависимости прокидывать параметрами
То есть сделать его просто отдельным модулем и импортировать как обычный vue файл?
как обычный JS/TS файл*
А если крепко связан с инстансом, то provide/inject,
можно рассмотреть, да, но чаще provide/inject юзают для того, чтобы расшарить общий стейт между компонентами, а не для того, чтобы просто провайдить общую функцию точнее можно сказать, если расскажешь подробнее про задачу
Но ведь функцию можно и в стейт запихнуть? И кстати это отлично, потому что стейт я тоже передаю вниз по компонентам через defineProps() И это как-то некошерно выглядит
>Но ведь функцию можно и в стейт запихнуть? смотря что ты подразумеваешь под стейтом и зачем ее туда запихивать, если можно просто провайдить)
Обсуждают сегодня