Anonymous
Как использовать проп «as» в SC с TS?
Denis
React Moscow Meetup 5: HOC, Hooks, Java & React, Huge Apps, MobX vs Redux Jingle bells, друзья! Новый 2020 год и Рождество приходят. А какое Рождество без чудес и сказки? 🙂 Казалось мы бы совсем недавно было 1 июня и мы собирались – более 400 человек на бесплатной конференции React Russia 2019. Хорошие отзывы прилетают до сих пор – кто-то сменил весь подход к разработке, кто-то нашел новый вектор развития, а кто-то даже нашел новых друзей или даже свою вторую половинку. 🙂 С этого момента наш чат в Telegram ( https://t.me/react_js ) вырос до 8700+ человек. Это был великолепный год. Он принёс прекрасный код. Количество проектов, мигрирующих на React.js неуклонно растет, требования к архитектуре приложений возрастают. Микросервисный фронтенд, SSR и CSS-in-JS (в любых реализациях) больше не звучат, как ругательства-надругательства. Уникальность опыта, интеграций и практик нарастает по экспоненте. Чуть больше года прошло с официального релиза React Hooks. Изменилось почти всё. Провожая уходящий год, давайте соберёмся на площадке наших партнеров из Газпромбанк, подведем итоги и пожелаем друг-другу прекрасного 2020 года на большом рождественском React Moscow Meetup. ДАТА И ВРЕМЯ: 11 декабря 2019, 19:00 ГДЕ: Москва, ул. Коровий Вал 5 (ст. Октябрьская, ст. Добрынинская), Газпромбанк. ВНИМАНИЕ! Обязательно возьмите с собой паспорт, чтобы попасть на территорию бизнес-центра. ПРОГРАММА: 19:00-19:10 Socializing, встречаемся, общаемся 19:10-19:20 Вступительное слово от Газпромбанк Зауэрс Дмитрий Владимирович, заместитель председателя правления 19:20-19:30 Welcome talk (Денис Измайлов, Axept) 19:30-20:00 Хоки и хуки (Дмитрий Григоров, Газпромбанк) Вы когда-нибудь сталкивались с дублированием кода в компонентах? Пытались ли вы сделать так, чтобы компонент был комбинируемый и был максимально переиспользуемым другими компонентами? В своем докладе Дмитрий расскажет о некоторых приемах использования компонентов высшего порядка (High Order Components) и сравним их с приемами, которые принесли хуки в "синтаксис" Реакта. Все думают, что одно пришло заменить другое, но на данном докладе мы попытаемся разобраться – действительно ли это так? 20:00 - 20:40 Море проблем: миграция с легаси на React.js! (Олег Коровин, Одноклассники) Доклад про то, как Одноклассники решили начать миграцию со старого стека на Реакт, и какие при этом были трудности, с которыми пришлось справляться. Невероятная история запуска Реакта в мире Java. 20:40 - 21:00 Кофе-брейк, живое общение 21:00 - 21:30 Мы не знаем, кто использует наше приложение (Кир Дергачев, Mos.Ru) Как переписать приложение, которые используется сотней команд, не поломав совместимость – как подготовиться к такому проекту и как не наступить на грабли, на которые наступили в Mos.Ru? Кир также поделится интересными решениями и расскажет, почему тестировщик – лучший друг программиста. 21:30 - 22:00 Почему мы выбрали MobX, а не Redux? ("Назим Гафаров, Mail.Ru Cloud Solutions) Доклад о том, мы отказались от трехлетнего опыта работы с Redux и переключились на MobX. Расскажу, на что смотрели и что повлияло на наш выбор. Кратко пройдемся по основным концепциям MobX и сравним их с реактивностью в Angular.js и Ember.js. 22:00 - 06:00 Afterparty, вопросы-ответы, откровения о наших болях и радости, без камер, записи и журналистов 🙂 УСЛОВИЯ УЧАСТИЯ: 1. Конференция бесплатная, но вход строго по регистрации. Регистрация по ссылке: https://axept.timepad.ru/event/1135941/ 2. Для того, чтобы зарегистрировать – необходимо заполнить форму ниже, отправив таким образом заявку и дождаться приглашения. ОСТАЛИСЬ ВОПРОСЫ? Появились вопросы/предложения или может даже готовы выступить с докладом на следующей конференции-митапе? Пишите срочно events@axept.com или напрямую в Telegram: @DenisIzmaylov И ЕЩЁ: 1. Подписывайтесь на канал конференции, чтобы быть в курсе событий: https://t.me/ReactMoscow 2. Вступайте в Facebook-группу: https://www.facebook.com/groups/ReactRussia
Друзья, через час начинаем ! 🎉 Заметки и трансляция будет вестись на официальном канале: https://t.me/ReactMoscow
Tasen
Всем привет, такая проблема, делаю POST запрос на то чтобы на api unplash и в ответ приходит что токен не действетелен, хотя с GET запросом все нормально отрабатывает. На скрине сам эндоинт по которому мой запрос не проходит
G.
Ребят, кто знает насколько влияет на производительность, если часть елементов например какого-то длинного списка скрываются через display none в сравнении с тем, когда они при выводе массива вообще обрезаются?
Dwight🫀
Кто в роутах шарит, в Апп-е есть два основных компонента: карточки и меню каталога. Нужно что бы при смене категорий - менялся роут
Яблоко
Ребята, по каким причинам экшены могут не доходить до редюсера? экшен стреляет,а в редюсер не заходит
Eddy
Live стрима не будет?
Поддержу вопрос, до сих пор на работе торчу
Yury
Ребята, по каким причинам экшены могут не доходить до редюсера? экшен стреляет,а в редюсер не заходит
чаще всего синтаксическая ошибка твоя кака-нить (если это не твое первое приложение)
Яблоко
Tasen
кто знает почему такая проблема, делаю POST запрос на на api unplash и в ответ приходит что токен не действетелен, хотя с GET запросом все нормально отрабатывает. На скрине сам эндоинт по которому мой запрос не проходит
Андрей Чайковский
Оно даже в редюсер не заходит
Ты его к стору подключил?
Яблоко
Ты его к стору подключил?
да, начальный state передает, а когда стреляет экшен, он не заходит в редюсер
Tasen
Я вообще не в курсе о чем речь но подозреваю что право на чтение ещё не означает права на запись
в общем есть api unplash, по сути это апи картинок, и там есть возможность лайкать фото по эндпоинту как на скрине, я прокидываю пост запрос, но чет он не проходит и говорит мол текен не действителен, хотя get работает
Tasen
там еще есть какой то write_like скоуп, с этим не разобрался что это, и как его использовать
Alex
Это понятно. Вы убедились что у вас пермишны на запись есть?
Alex
Это он и есть, пермишн на запись
Tasen
Это он и есть, пермишн на запись
оу, да? его в заголовки вставить нужно?
Alex
Понятия не имею
Vadim
Это понятно. Вы убедились что у вас пермишны на запись есть?
Ты документацию вообще читал? https://unsplash.com/documentation#authorization
Vadim
оу, да? его в заголовки вставить нужно?
Вернее вот тебе сообщение выше ^
Tasen
Вернее вот тебе сообщение выше ^
да, но я полагаю, что раз такой вопрос я что то упустил по невнимательности
Vadim
да, но я полагаю, что раз такой вопрос я что то упустил по невнимательности
Вот открой ссылку и прочитай. Там ясно написано что определенные действия требуют авторизации от конкретного пользователя. Логично предположить что лайкнуть фотографию можно только авторизированным пользователем.
Tasen
Вот открой ссылку и прочитай. Там ясно написано что определенные действия требуют авторизации от конкретного пользователя. Логично предположить что лайкнуть фотографию можно только авторизированным пользователем.
это да, но я же в заголовках уже указал ключ авторизации чтобы прокинуть post запрос, и почему то приходит ответ, что токен не действителен, хотя с get запросом все в порядке и get запрос проходит нормально
Eddy
@DenisIzmaylov добрый вечер, немного с опозданием смогу зайти на митап?
Tasen
Ну тут уж сам гугли почему твой токен может не подходить
эт да, гуглил, проблема уже поднималась на счет этого https://github.com/unsplash/unsplash-js/issues/62 , и там по сути решение точно такое же как у меня, и чет все равно не понятно почему именно post запрос не проходит, проблемку пока не решил, но в общем спс что откликнусь
GG
Интересно, никто ещё не создал фреймворк на основе реакта? Не могу нагуглить
Виктор
а что он должен делать?
GG
а что он должен делать?
Уверенность в завтрашнем дне
Виктор
на нем есть куча юи либ но врядли ты это имел в виду
Ilya
называется вью, создан на основе реакте и ангуляра
ну в вашем толковании "основа" как-то странно употребляется :) Vue разве что можно сказать что "вдохновлен..." реактом, а по поводу ангуляра я вообще бы поспорил, да и Vue это так-же как и реакт это библиотека а не фреймворк, как упомянутый ангуляр... вообщем к высказыванию есть замечания :)
Alexander
Всем привет, есть ряд вопросы по mobx, которых нет в доке, буду очень признателен кто отзовётся), кто знает mobx и работал на нем?)
Ilya
vue не фреймворк, ЧТО?
Да он может себя чем угодно называть, хоть "платформой", это в ту же оперу что и Final Form с его самоопределением в виде "state management for React " :) По факту Vue это библиотека... aka React который и не претендует
Oleg
React - это фреймворк 👀
Alexander
Да здесь формулировка получиться высотой в экран телефона
Ilya
React - это фреймворк 👀
Если верить вольно-определяющимся Vue-шникам то и они фреймворк и React у них - фреймворк, о чем у них есть даже phalometry page - https://ru.vuejs.org/v2/guide/comparison.html ; где величая себя фреймворком они сравниваются с другими фрейморками - первый из которых, ВНЕЗАПНО - React, который сам себя именует не иначе как библиотека
Ivan
А в чем разница
Ilya
А в чем разница
между фреймворком и библиотекой ?
Oleg
Если верить вольно-определяющимся Vue-шникам то и они фреймворк и React у них - фреймворк, о чем у них есть даже phalometry page - https://ru.vuejs.org/v2/guide/comparison.html ; где величая себя фреймворком они сравниваются с другими фрейморками - первый из которых, ВНЕЗАПНО - React, который сам себя именует не иначе как библиотека
Ну по сути, реакт навязывает свой стиль написания кода. С этой точки зрения - реакт - библиотека. Хотя, если учитывать, что в реакте ты всё делаешь сам, сам выбираешь библиотеки, то всё таки библиотека.
Yury
всем привет, подскажите пожалуйста, как СИНХРОННО получить данные, т.е. не отрисовывать страницу пока не отработает запрос к апи) если важно, то это надо сделать в хуке
Ivan
Библиотека набор классов, фреймворк - набор наборов классов
Ilya
Ну по сути, реакт навязывает свой стиль написания кода. С этой точки зрения - реакт - библиотека. Хотя, если учитывать, что в реакте ты всё делаешь сам, сам выбираешь библиотеки, то всё таки библиотека.
так в Vue ровным счетом то же самое... "все сам" остальное библиотеками, особенно доставляет то что они сами таки и пишут на своем же сайте
Yury
fetch возвращает промис и код выполняется дальше
Ilya
т.е. типо - мы библиотека - но если обмазаться дургими библиотеками можно маштабироваться до полноценного фреймворка :) aka React
Ivan
Хз как по мне библиотека решает специфическую задачу по теме
Yury
зочем
в отведе содержатся компоненты для импорта ... знаю что коряво, но больше нет идей как сделать типо безопасность)
Ivan
А Фреймворк это вспомогательный инструмент для написания кода. Абстракция над кодом прогеров, навязывающая им какие-то стандарты написания. Набор оберток и конструкций
Dan
Всем привет! Я пишу на свифте и очень нужна помощь в вебе. Есть сайт, написанный на реакте, и есть мой js скрипт, который обращается к сайту. Мне очень нужно знать как отследить изменения Url на сайте с помощью js скрипта!!
Oleg
Oleg
где?
Хз, походу нигде. Херню сморозил.
Ilya
Дело вообще не в паттерне. Дело в предоставлении абстракций над разными уровнямими применения. т.е. библиотека предоставляет абстракции для одного уровня применимости, а фреймворк - предоставляет абстракции сразу для нескольких причем связанных направлений применимости оформленных в единообразном стиле (как правило выражающегося в единоподобном API) Если прмям совсем просто - то фреймворк дает тебе абстракции и для реализации хранилища(модели) и для осущесствления операций над данными (контроллер) и абстракции для имплементации их отображения (вью) в терминах MVC - так это же еще не все, тот-же ангуляр предоставляет еще абстакции для работы с сетевыми запроосами и реализации событийной системы, т.е. это уже больше чем MVC
Yury
вот как раз для него и надо: function routes(items) { return items.map( (item) => { if (!item.children) { let DynamicComponent = lazy(() => import(`${item.component}`)); return <Route key={item.url} path={item.url} exact render={() => (<DynamicComponent key={item.url+"comp"}/>)}/> } else { return routes(item.children) } }) } items - json, который я и загружаю, но если страница отрендерится раньше, чем я получу json, то будет ошибка импорта компонентов
Александр
monkey patching - для сеттера window.location (с отправкой данных на сервер или сохранением их в localStorage)
Скорее тогда history надо манкипатчить, чтобы вызовы pushState/replaceState трекать
Ilya
Скорее тогда history надо манкипатчить, чтобы вызовы pushState/replaceState трекать
быстрый гуглеж судя по всему нашел даже некую реализауию подобного на гитхабе https://gist.github.com/alassek/4491705
Александр
эм, разве onpopstate не самый простой вариант?
Он же только на popstate будет тригерится :) На pushState не будет. То бишь при вызове history.back или при инициации пользователем возврата на предыдущую запись в истории
Ilya
Скорее тогда history надо манкипатчить, чтобы вызовы pushState/replaceState трекать
https://stackoverflow.com/a/46428962 вот тут есть какие-то наработки по навешиваю mutation observer на body со сверкой старого и нового href - хз как это будет работать - скорее всего плохо :)
Надежда
Доброго времени суток))) Подскажите,пожалуйста, как сделать или где посмотреть примеры подобного. Мне нужно реализовать древовидный график у которого П15 и т.д. это реакт компоненты. Я нахожу только примеры из d3 где на этом месте подключен svg.
Александр
а еще кстати можно посмотреть в сторону Service Worker :) если там реальные переходы...
Рискую быть осмеянным, но можно ещё через setInterval отслеживать состояние location.href :)