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

Изучаю реакт. Начал читать про контекст, но там было сказано,

если надо просто передать через кучу компонентов данные не используя пропсов, то используйте композицию. Начал читать на офф.сайте и ничего не понял, так же начал искать и ничего понятного не понял. Может кто-то скажет, что это в двух словах и как это работает?

11 ответов

8 просмотров

что именно? композиция?

https://youtu.be/3XaXKiXtNjw

Пользователь-6159c Автор вопроса
Volodymyr Klimov
https://youtu.be/3XaXKiXtNjw

а в двух словах, вместо видео нельзя?

Пользователь 6159c
а в двух словах, вместо видео нельзя?

Не все можно в двух словах объяснить, тем более там есть пример, на нем проще увидеть

Пользователь-6159c Автор вопроса
Volodymyr Klimov
Не все можно в двух словах объяснить, тем более та...

меня там пугают хуки, которые я не изучал ещё

Пользователь 6159c
меня там пугают хуки, которые я не изучал ещё

https://ru.reactjs.org/docs/composition-vs-inheritance.html Это читали?

Пользователь 6159c
да, и не понял

Ну это как композиция функций - применение одной функции к результату другой. То же самое происходит и с компонентами. Есть компонент Sidebar, есть компонент Menu. Как сделать компонент, который Menu в Sidebar-е? Сделать третий компонент? Унаследоваться от Sidebar и пихнуть в него меню? Унаследоваться от меню? Так вот композиция компонентов - принцип проектирования таких компонентов, которые можно "применить" к другим. Например, делаем компонент Sidebar таким, чтобы он сам отвечал только за логику, связанную с отображением боковой панели, а что будет в этой боковой панели - он не знает, ему туда можно передать хоть наш компонент Menu, хоть еще что-то. И в итоге получается, что вместо наследования или создания кучи непереиспользуемых компонентов для каждого сайдбара, мы делаем так: <Sidebar><Menu /></Sidebar> И вместо Menu можно засунуть что угодно. Получается, что мы "применяем" логику Sidebar-а к какому-то еще компоненту, это и есть пример композиции. Я думаю, что после такого объяснения вообще ничего не понятно, так что лучше посмотрите видео😁

Пользователь-6159c Автор вопроса
Volodymyr Klimov
Ну это как композиция функций - применение одной ф...

благодарю. Я такое делал. Таки это не даёт, то что мне надо.... Изначально подумал, что это панацея какая-то

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
Коллеги, добрый день. Есть такой вопрос: Есть модуль, который надо запустить через супервизор как дочерний процесс. Пока инстансов было нужно 8, всё было окей, но когда их ст...
Δημήτηρ
4
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
Карта сайта