artalar
И не используйте react-select....
Vlad
кто как делает версирование апликух? какие тулзы посоветуете?
Ilya
Ну т.е. используйте lazy loading, brotly, webp и т.п.
https://web.dev/get-started-optimize-react/ ну вот, насколько я понимаю некий набор "советов" при тандеме с CRA
Alexander
Он и так оптимизирован
На выходе получается размер больше мегабайта. Есть способы ужать? Я видел, что некоторые рекомендуют использовать preact вместо react, но это, как мне кажется, не совсем разумно. Во всяком случае, не всегда.
artalar
И архитектура со структурой в которой он заработает....
Alexander
В первую очередь вам нужен lazy loading
Понял. Посмотрю в этом направлении тоже
Alexander
видимо у тебя много толстых либ и ассетов
Всяких полно, да. Вот я и хочу узнать, как отфильтровать ту часть функций, которая не используется библиотеками.
Alexander
Вы сами-то как оптимизируете?
Daniil
npx browserlist
Alexander
Сначала посмотри в bundler analyzer и кинь package на bundlephobia
"bundlephobia" - хорошее название. Не знал об этом. Спасибо!
Ilya
На выходе получается размер больше мегабайта. Есть способы ужать? Я видел, что некоторые рекомендуют использовать preact вместо react, но это, как мне кажется, не совсем разумно. Во всяком случае, не всегда.
нужно внимательно изучить набор используемых вами либ (какой вариант пакетирования они используют, желательно отказаться от всех зависимостей commonJs формата) и способов импорта оных чтобы нормально при сборке заработал (https://webpack.js.org/guides/tree-shaking/) у CRA какое-то время были проблемы с remove dead code Для библиотек lodash и moment.js - которые часто встречаются - есть специальные гайды как от лодаша добиться три-шейкинга и с моментом то же самое + там можно и нужно собирать с целевыми таймзонами и не более. Настройки минификации в CRA вроде и так нормальные. Так что тут надо архитектурно работать скорее всего плотнее
Tor
Есть ссылка на доки?
Если у вас nginx - то в гугле что-то вроде nginx brotli, и brotli webpack для конфига вебпака, соответственно
Alexander
Понял. Всем огромное спасибо за помощь!
Daniil
Ну и тоже самое с моментом
Daniil
есть конечно lodash-es, возможно оно то самое о чем думаю
Ilya
Никак ты не добьешься от лодаша нормально тришейкинга, если не будешь явно писать пусть до нужного модуля, а не по старинке _ 🙂 Что в общем плагин для бабеля за тебя это и сделает чаще всего, но не при чейнинге
ну само собой придется переворматировать-рефакторить импорты или использовать плагины. как-то так... ну и на этом фронте то и дело появляются решения... я уже несколько раз разные гайды видел, на актуальный момент - не в теме, т.к. от подобных зависимостей давно ушли.
Daniil
ну само собой придется переворматировать-рефакторить импорты или использовать плагины. как-то так... ну и на этом фронте то и дело появляются решения... я уже несколько раз разные гайды видел, на актуальный момент - не в теме, т.к. от подобных зависимостей давно ушли.
Чаще всего просто в начале стоит идти именно в настройки бабеля и вебпака, смотреть в браузелист и какие обертки он делает. По итогу с настройкой бабеля мы примерно срезали около 1мб, но опять же, зависит все от приложения
Paul
Привет всем! Может кто-нибудь подскажет библиотеку для реакта? Нужно с вебкамеры детектить лицо, если оно будет замечено. Всё на стороне браузера.
eden
вопрос по react-storybook. Сторибук игнорирует стили компонентов. Конфиг вебпака на скрине. С таким скрином кидает ошибку > 2 | var content = require("!!../../../node_modules/css-loader/dist/cjs.js??ref--10-1!./NoteItem.css"); | ^ 3 | 4 | if(typeof content === 'string') content = [[module.id, content, '']]; вопрос - как починить?
SᑎOᙖOᖇᑎ
на чем лучше делать чат? сокети или чет еще?
Ilya
на чем лучше делать чат? сокети или чет еще?
Что ты имеешь в виду под сокетами? websokets на клиенте?
eden
А есть шанс не юзать storybook?) docz какой нибудь
хотелось бы сторибук. бтв, нашёл в чем причина была include: path.resolve(__dirname, '../')
Ilya
да
Бэкенд тоже вы будете имплементировать?
Ilya
Иногда сокеты никак не прикрутить так как бэкенд немоге или не хочет
Ilya
не я
Обсудите с бэкендом, если он может веб-сокеты и главное хочет - то это будет лучший вариант, обсудите так-же протокол который вы "поверх" вебсокетов планируете использовать, иногда в этом плане у бэка тоже бывают изъебы
Ilya
спасибо буду делать что то такого ода впервие, немного страшновато
Чтобы не было так страшно, разберите например вот этот туториал https://itnext.io/building-a-node-js-websocket-chat-app-with-socket-io-and-react-473a0686d1e1 С кодом примера
Timofei
Скажите. Какой-нибудь из существующих пакетов с формами позволяет делать гибкие механизмы с сайдэффектами, которые обновляют значения полей формы при изменении других значений полей? Для примера: Поле А с выбором типа сущности, при применении фильтрует значения поля Б с выбором типа шаблона, при этом может быть применен дефолтный шаблон. Если он применяется, то вначале заполняются другие поля формы на основе значения в поле А, а затем сверху перезаписываются значениями из примененного шаблона из поля Б, причем при заполнении, некоторые поля (селекты) сначала должны сделать запрос за данными и только потом заполниться, это касается и прямого заполнения от поля А, так и заполнения при применении шаблона от поля Б. И вот такая цепочка сайд-эффектов изменения одного поля от другого может быть глубиной в 2-4 уровня, включая асинхронные запросы, перед изменением значения поля. В общем сейчас мы решаем это дело кастомным механизмом сайдэффектов, поверх redux-form. Хочется узнать, есть ли похожие механизмы в уже существующих пакетах с формами?
Artem
можно ли название функции из константы сделать?
Artem
типа для редьюсера было бы полезно
Тимофей 🛴
Artem
да
Тимофей 🛴
да
Нет, опиши зачем, наверное есть лучше вариант
Artem
придумал уже
Kurzdor
Скажите. Какой-нибудь из существующих пакетов с формами позволяет делать гибкие механизмы с сайдэффектами, которые обновляют значения полей формы при изменении других значений полей? Для примера: Поле А с выбором типа сущности, при применении фильтрует значения поля Б с выбором типа шаблона, при этом может быть применен дефолтный шаблон. Если он применяется, то вначале заполняются другие поля формы на основе значения в поле А, а затем сверху перезаписываются значениями из примененного шаблона из поля Б, причем при заполнении, некоторые поля (селекты) сначала должны сделать запрос за данными и только потом заполниться, это касается и прямого заполнения от поля А, так и заполнения при применении шаблона от поля Б. И вот такая цепочка сайд-эффектов изменения одного поля от другого может быть глубиной в 2-4 уровня, включая асинхронные запросы, перед изменением значения поля. В общем сейчас мы решаем это дело кастомным механизмом сайдэффектов, поверх redux-form. Хочется узнать, есть ли похожие механизмы в уже существующих пакетах с формами?
formik/react-hook-form
Тимофей 🛴
Сторибук норм сейчас
Ну ок, я видел что они много обновляли
Dmitriy
Ну ок, я видел что они много обновляли
Он в mdx как докз может сейчас
Тимофей 🛴
Он в mdx как докз может сейчас
У него проблема была в конфигурации, очень она была сложная
Dmitriy
У него проблема была в конфигурации, очень она была сложная
Не знаю что может быть сложного в конфигурации для тех кто пережил вебпак кастом конфиг))
Oruj
люди, я пользовал CSS модули (style.module.css) и все было ок. очень удобно без всяких настроек создавать отдельные css-файлы и испортировать в нужный реакт компонент. но я подключил еще и Laravel и там чет не работают эти css-модули. есть ли альтернативный вариант?
Oruj
Используй laravel только как апи
да, я так и хочу. там по фронтенду у меня реакт. и не работают модули https://create-react-app.dev/docs/adding-a-css-modules-stylesheet/
Oruj
с компосером
Oruj
Это ж не связано с laravel, как не работают? Какая ошибка?
никакой ошибки. стили прилетают в <head> а вот у тегов не прописываются классы
Oruj
то есть консоль пустой
Oruj
а в сборке без ларавель работает на ура. скриын позже удалю
Oruj
mix.webpackConfig считай что пустой
Тимофей 🛴
а в сборке без ларавель работает на ура. скриын позже удалю
Не понимаю где связь, почему ты laravel собираешь в месте с клиентом
Oruj
я думал это прописать, но с этим уже куча ошибок
Victor
можно ли название функции из константы сделать?
Можно. Положи функции в объект и потом ‘myObject[name](args)’
Oruj
Не понимаю где связь, почему ты laravel собираешь в месте с клиентом
я просто не знаю другого подхода, чтобы связывать фронт с бакэндом. на ларавеле папка resources считай что это папка src в проекте реакта и можно теперь делать запросы через 'api/request'
Oruj
если знаете ссыку, как можно корсом или еще чем то связать одельный ларавель проект то скиньте плиз. сильно замучался
Тимофей 🛴
я просто не знаю другого подхода, чтобы связывать фронт с бакэндом. на ларавеле папка resources считай что это папка src в проекте реакта и можно теперь делать запросы через 'api/request'
Два отдельных проекта, клиент просто должен слать запросы на твой сервер. Я бы так делал. Если хочешь вперемешку то иди в канал laravel )
Oruj
нет мне не нравится в перемешку. просто не нашел где показывается как из отдельного реакта делаются запросы на определенный сервер. там же защита стоит у сервера на корс. чтобы только с домена можно было отправлять запрос
Oruj
а если собираешь в ларавеле, то никаких проблем с запросом
Dmitry
я просто не знаю другого подхода, чтобы связывать фронт с бакэндом. на ларавеле папка resources считай что это папка src в проекте реакта и можно теперь делать запросы через 'api/request'
Тоже самое но запросы на домен:api/ Тут у тебя индекс блейд подрывается и сервер на том же сервере А так будет тот же node static подрыва ь на сервере А и твой сервер на Б
Oruj
Тоже самое но запросы на домен:api/ Тут у тебя индекс блейд подрывается и сервер на том же сервере А так будет тот же node static подрыва ь на сервере А и твой сервер на Б
не понял. короче если кто знает ссылку на урок или что то такое, где бы я смог научиться реализовать корс запросы что ли на сервер апи
Oruj
это уже тема нгинкс/апач что ли