Артур
Этот вопрос в @js_noobs_ru
подписался, спасибо )
Looch
Я бы все таки не говорил бы что этот вопрос так очевиден
+ тут еще механизм change detection надо бы изучить и работу gc
Артур
Это когда A+B=C
так, а раньше как вы жили, до 2018 года? У вас был объект юзера, вы у него меняли name и нормально было :)
Looch
Но чисто концептуально с иммутабл подходом у тебя осуществляется ссылочная прозрачность
Looch
И код более предсказуемый/тестируемый и тд
Артур
Тебе правда стоит чуть самому тему изучить 🙇🏻‍♂️
вот как раз ссылки на объекты это чуть ли не фундаментальная фича яваскрипта
Артур
другие не употребляю :)
Фарид
Можно не использовать map filter reduce из js, а, например, из ramda.
Cenator 🐈
lodash
Ramda
Cenator 🐈
Нас больше
Артур
)
Дмитрий
Ramda
Remeda!
Артур
так, теперь ещё в одном вопрос нужно разобраться — редакс в реакте и в других фреймворках. Начну издалека. Вот смотрите, помните в далёких 2010-х годах такую платформу — Ucoz? Когда заходишь на любой сайт на платформе Укоза, то сразу видно, что это шаблон Укоза — по центру контент, а по бокам всякие виджеты идиотские: виджет погоды, часы, календарь :) Вот смотрите — Реакт изначально и создавался для таких виджетов. Реакт не создавался для полноценного многостраничного сайта. Сейчас тот же Реакт на Фейсбуке используется только в виджетах — чат в правом сайдбаре, комментарии к посту и т.п. Тобишь, чисто для виджетов. Для реального большого сайта Реакт использовать нельзя было — ну невозможно прокидывать миллиарды данных в пропсах. В виджетах всё просто — там мизерная вложенность, поэтому прокидывать в пропсах нужно мало чего. А в большом сайте нужно будет прокидывать кучу всего в чайлд-компоненты. Для этого в Реакт ввели Редакс, чтобы был один стейт-менеджер, чтобы из любого места обратиться в один эндпоинт, а не прокидывать всё в пропсах. Я всё правильно понимаю?
Dmitriy
так, теперь ещё в одном вопрос нужно разобраться — редакс в реакте и в других фреймворках. Начну издалека. Вот смотрите, помните в далёких 2010-х годах такую платформу — Ucoz? Когда заходишь на любой сайт на платформе Укоза, то сразу видно, что это шаблон Укоза — по центру контент, а по бокам всякие виджеты идиотские: виджет погоды, часы, календарь :) Вот смотрите — Реакт изначально и создавался для таких виджетов. Реакт не создавался для полноценного многостраничного сайта. Сейчас тот же Реакт на Фейсбуке используется только в виджетах — чат в правом сайдбаре, комментарии к посту и т.п. Тобишь, чисто для виджетов. Для реального большого сайта Реакт использовать нельзя было — ну невозможно прокидывать миллиарды данных в пропсах. В виджетах всё просто — там мизерная вложенность, поэтому прокидывать в пропсах нужно мало чего. А в большом сайте нужно будет прокидывать кучу всего в чайлд-компоненты. Для этого в Реакт ввели Редакс, чтобы был один стейт-менеджер, чтобы из любого места обратиться в один эндпоинт, а не прокидывать всё в пропсах. Я всё правильно понимаю?
Не заморачивайся
Артур
Не заморачивайся
не, я не заморачиваюсь, я пытаюсь понять, зачем в нормальных фреймворках нужен стейт-менеджер. В Реакте, как мне кажется, я понял, зачем — чтобы обойти головную боль при прокидывании пропсов, особенно, когда через компонент прокидываются совершенно ненужные компоненту пропсы, но которые нужны чайлд-компонентам, например.
Артур
нет, объясни в двух словах (особенно про Ангуляр, ибо я на нём пишу, ибо в нём есть депенденси инжекшен и сервисы — зачем ещё туда пихать стейт-менеджер я не врубаюсь — у меня сервисы синглтоны, они сами в себе хранят свой стейт, я прекрасно могу их инжектить куда нужно и слушать subject)
Sergey
так, теперь ещё в одном вопрос нужно разобраться — редакс в реакте и в других фреймворках. Начну издалека. Вот смотрите, помните в далёких 2010-х годах такую платформу — Ucoz? Когда заходишь на любой сайт на платформе Укоза, то сразу видно, что это шаблон Укоза — по центру контент, а по бокам всякие виджеты идиотские: виджет погоды, часы, календарь :) Вот смотрите — Реакт изначально и создавался для таких виджетов. Реакт не создавался для полноценного многостраничного сайта. Сейчас тот же Реакт на Фейсбуке используется только в виджетах — чат в правом сайдбаре, комментарии к посту и т.п. Тобишь, чисто для виджетов. Для реального большого сайта Реакт использовать нельзя было — ну невозможно прокидывать миллиарды данных в пропсах. В виджетах всё просто — там мизерная вложенность, поэтому прокидывать в пропсах нужно мало чего. А в большом сайте нужно будет прокидывать кучу всего в чайлд-компоненты. Для этого в Реакт ввели Редакс, чтобы был один стейт-менеджер, чтобы из любого места обратиться в один эндпоинт, а не прокидывать всё в пропсах. Я всё правильно понимаю?
блин, говори правильно: микрофронтенды
Артур
блин, говори правильно: микрофронтенды
первый раз слышу. Это виджеты?
Sergey
> когда через компонент прокидываются совершенно ненужные компоненту пропсы, но которые нужны чайлд-компонентам, например. выучи для себя контекст, например, если в SM не могёшь
Sergey
первый раз слышу. Это виджеты?
ладно, ты, видимо, и правда только-только вошёл :)
Sergey
нет
ты пишешь на ангуляре. я долго писал на эмбере. если я щас начну бомбить, сравнивая эмбер и всё остальное на рынке, меня обольют говном и будут правы.
Илья
нет
Тогда к чему было писать, что пропсы нужные и ненужные надо прокидывать от компонента к компоненту?
Sergey
нет
ты тупо сравниваешь несравнимые подходы. тебе никто не мешает построить свой MVC вокруг реакта с блекджеком и инверсией управления. Но зачем
Артур
ты пишешь на ангуляре. я долго писал на эмбере. если я щас начну бомбить, сравнивая эмбер и всё остальное на рынке, меня обольют говном и будут правы.
а я не бомблю — я пытаюсь понять, зачем мне редакс в Ангуляре, разбираясь зачем он, редакс, изначально был введён в Реакт (ибо редакс, собственно, из Реакта хайпанул)
Артур
Тогда к чему было писать, что пропсы нужные и ненужные надо прокидывать от компонента к компоненту?
возможно, сейчас как-то сделали по-другому, но раньше, вроде бы, нужно было прокидывать, ибо у Реакта нету di
Sergey
и функциональное программирование не вчера появилось, просто так вышло, что его, как бы глупость не сказать, движителем в вебе стал реакт, как ни странно.
Sergey
я больше о подходе в реальных проектах, мап-редьюс это баловство.
Илья
возможно, сейчас как-то сделали по-другому, но раньше, вроде бы, нужно было прокидывать, ибо у Реакта нету di
Раньше когда не было контекста в том виде в каком он сейчас и когда не рекомендовалось его использовать, уже давным давно существовал Redux который решал проблемы прокидывания нужного куска состояния в компоненты без адового водопада пропсов.
Dmitriy
я больше о подходе в реальных проектах, мап-редьюс это баловство.
А что такое функциональное программирование? Можешь в двух словах пояснить ?
ipos
1) функциональное 2) программирование
Илья
Может быть когда рект только появился и были какие-то проблемы в однонаправленном потоке и как следствие адового пробрасывания стейта и пропсов от родителей к детям, но я такого не застал)
S
Админ указывал на статьи что надо использовать named exports, окей я согласен, но в доке по react-native почему то везде export default. Я пока еще за него не садился, но там тоже можно спокойно юзать named exports?
Фарид
Фарид
А почему это баловство?
Sergey
А почему это баловство?
я в глобальном смысле. можно заюзать мап-редьюс, но при этом залажать всё остальное
Mihail
Мемо может?
Dmitriy
шта? фп и стейт ?
Dmitry
Запись query && fetch(...) менее красивая?
Дело не в менее красиво Нужно в нормальном стиле писать && не уместно
Denis
Админ указывал на статьи что надо использовать named exports, окей я согласен, но в доке по react-native почему то везде export default. Я пока еще за него не садился, но там тоже можно спокойно юзать named exports?
В компонентах лучше делать дефолтный экспорт, но при этом их можно очень удобно организовывать с помощью именных. На одном уровне с твоими компонентами будет файл index.js, в который ты импортируешь все свои компоненты и экспортируешь их с помощью именного экспорта. И в дальнейшем используешь вот так: import { Component1, Component2 } from “../components”. В итоге намного чище импорты станут
Cenator 🐈
так, теперь ещё в одном вопрос нужно разобраться — редакс в реакте и в других фреймворках. Начну издалека. Вот смотрите, помните в далёких 2010-х годах такую платформу — Ucoz? Когда заходишь на любой сайт на платформе Укоза, то сразу видно, что это шаблон Укоза — по центру контент, а по бокам всякие виджеты идиотские: виджет погоды, часы, календарь :) Вот смотрите — Реакт изначально и создавался для таких виджетов. Реакт не создавался для полноценного многостраничного сайта. Сейчас тот же Реакт на Фейсбуке используется только в виджетах — чат в правом сайдбаре, комментарии к посту и т.п. Тобишь, чисто для виджетов. Для реального большого сайта Реакт использовать нельзя было — ну невозможно прокидывать миллиарды данных в пропсах. В виджетах всё просто — там мизерная вложенность, поэтому прокидывать в пропсах нужно мало чего. А в большом сайте нужно будет прокидывать кучу всего в чайлд-компоненты. Для этого в Реакт ввели Редакс, чтобы был один стейт-менеджер, чтобы из любого места обратиться в один эндпоинт, а не прокидывать всё в пропсах. Я всё правильно понимаю?
Редакс не создавался, а реакт вполне, кстати новый фб полностью на нем
artalar
так, теперь ещё в одном вопрос нужно разобраться — редакс в реакте и в других фреймворках. Начну издалека. Вот смотрите, помните в далёких 2010-х годах такую платформу — Ucoz? Когда заходишь на любой сайт на платформе Укоза, то сразу видно, что это шаблон Укоза — по центру контент, а по бокам всякие виджеты идиотские: виджет погоды, часы, календарь :) Вот смотрите — Реакт изначально и создавался для таких виджетов. Реакт не создавался для полноценного многостраничного сайта. Сейчас тот же Реакт на Фейсбуке используется только в виджетах — чат в правом сайдбаре, комментарии к посту и т.п. Тобишь, чисто для виджетов. Для реального большого сайта Реакт использовать нельзя было — ну невозможно прокидывать миллиарды данных в пропсах. В виджетах всё просто — там мизерная вложенность, поэтому прокидывать в пропсах нужно мало чего. А в большом сайте нужно будет прокидывать кучу всего в чайлд-компоненты. Для этого в Реакт ввели Редакс, чтобы был один стейт-менеджер, чтобы из любого места обратиться в один эндпоинт, а не прокидывать всё в пропсах. Я всё правильно понимаю?
Это валидная точка зрения
Denis
Дефолтный экспорт лучше нигде не делать
Ты в компонентах тоже используешь именной? Я обычно делаю так, как выше написал
Андрей
Подскажите куда копать по поводу того что в продакшене мод не работает интерактив связанный с JS, запускал на pm2 start ecosystem.config
Maksim
Ты в компонентах тоже используешь именной? Я обычно делаю так, как выше написал
А какой смысл использовать дефолтный? Антипаттерн же уже давно
Denis
А какой смысл использовать дефолтный? Антипаттерн же уже давно
Ну для компонентов я бы все таки делал дефолтный тк тв экспортируешь 1 значение и, чтобы не было, длинных импортов, разруливал бы с помощью индексного файла, это уже дело вкуса Вот из доки: Named exports are useful to export several values. During the import, one will be able to use the same name to refer to the corresponding value. Concerning the default export, there is only a single default export per module. A default export can be a function, a class, an object or anything else. This value is to be considered as the “main” exported value since it will be the simplest to import.
Stepan
Всем добра. Помогите с такой задачкой - есть реакт приложение. У него есть слой который отвечает за запросы к API. Оформлен как набор функций котрые возвращают promisies. Ошибки отправляются в обработчик ошибок. Теперь вознила необходмость предупредить пользователя о том, что произошла ошибка. Добавить какой-то значок на видное место. Не соображу как это по- уму сделать. Можно под этот значек где-то дивку завести с определенным айдишником и туда добавлять заначет ошибки. Тпипа document.queryselector(...).appendChiled(...). Насколько такой подход хорош в реакте. Что-то мне подсказывает что плох. Тогда как лучше?
Kirill
Дело вкуса, но вёрстка будет в порядке
Stepan
Лучше сделать компонент для ошибок и рендерить его при наличии ошибки
А как он узнает что случилась ошибка? Он будет лежать например в футоре. Ошибка возникнет на какой-нибудь странички при рендеринге таблички. Ну очень не хочется редакс городить...
Vitaliy
ребят подскажите пожалуйста как через yarn ставить react?
Kirill
Зачем его городить? useState
Kirill
Да, привет Гикбрейнсу, кста
Vitaliy
все точно также только вместо npx использовать yarn?
Stepan
Зачем его городить? useState
а как setError() передать в слой API?
Kirill
А в чем проблема? В promise?
Vitaliy
не пойму кто yarn пользуется? очень быстро ставятся зависимости, но намного меньше чем через npm, почему так?
Kirill
Если на хуках просто нужно подписаться на переменную в API и В return (<> error ? <Error>{error.message}</Error> : null </>)
Kirill
Например
Stepan
А в чем проблема? В promise?
<app> <header> здесь нужен значок</header> <body> <comp1> здесь вызывается апи в которой случается ошибка вот я не пойму надо в этот компонент передать setError() и его отрпавить в api.getItes(setError). Кидать через пропсы - дичь не реальная, много компонтов, много уровней....
Kirill
Так пропсы всегда можно резолвить до return
Kirill
const Badge = withBadge ? <Badge /> : null; return <>{ Badge }</>;
Kirill
На одном из докладов у PiterJS был доклад "чистый JSX", могу ошибаться в названии