Temych
извиняюсь если вопрос дурацкий) к примеру, у меня есть таблица, там значения пришедшие от json. и некоторые значения изменились, в момент когда приходят измененные значения мне нужно заменять всю таблицу? либо же могу только измененные значения заменять? например, в js замена html таблицы делаю так: $('#id').html(response); , тогда заменяется вся таблица просто.
создаешь при помощи реакта компонент таблицу. для таблицы создаешь родителя - контейнер. контейнер подключаешь к редаксу. из контейнера пропсами в таблицу прокидываешь данные, что нужно отображать. в редаксе создаешь стейт/стор/хранилище чистых данных. создаешь экшен-криэйтор, который обращается к бэкэнду и получает json, затем отправляет в редьюсер этот json, редьюсер меняет стетйт/стор/хранилище, автоматом перерисовываается таблица. Перерисовываться таблица будет в том месте, где изменились данные для отображения. Напишешь редьюсер и экшен-криэйторы только для добавления строки, добавишь данные в стор, в таблице дорисуется только строка.
Heavy
Наверное будет так:
делаешь что-то типа <Container/> , в нем
Heavy
блин ну да
Heavy
создаешь при помощи реакта компонент таблицу. для таблицы создаешь родителя - контейнер. контейнер подключаешь к редаксу. из контейнера пропсами в таблицу прокидываешь данные, что нужно отображать. в редаксе создаешь стейт/стор/хранилище чистых данных. создаешь экшен-криэйтор, который обращается к бэкэнду и получает json, затем отправляет в редьюсер этот json, редьюсер меняет стетйт/стор/хранилище, автоматом перерисовываается таблица. Перерисовываться таблица будет в том месте, где изменились данные для отображения. Напишешь редьюсер и экшен-криэйторы только для добавления строки, добавишь данные в стор, в таблице дорисуется только строка.
ненене, ты о том, что вся таблица перерисовывается
Heavy
а если нужно только отдельные ее строки/столбцы перерисовать?*
Heavy
тогда в <Container/> помещаешь компоненты со своим state
Heavy
В контейнере мапом мапишь
Heavy
и получаешь дофигища новых компонент. И уже по условию можешь прокинуть пропсы в нужную компоненту
Heavy
наверное так. Но при таком раскладе, я предполагаю, потребуется больше памяти.
iKey
благодарю за подсказки. буду пробовать) отпишу потом как получилось
Heavy
мне аж самому интересно как правильней
Heavy
да, похоже типа того
Temych
только при props -> localState нужно копировать объект
Heavy
копировать только ту часть, которая изменилась
Heavy
и пихать дальше
Heavy
Слушайте, а вообще, какие у кого ожидания от React? Ну типа устроиться на работу, и получать N денег. N - это сколько и на каком этапе?
Heavy
Heavy
Heavy
круто, когда люди стремятся к чему-то
Temych
сисадмин/инженер КИПиА(оборудование всякое автоматизировать приходится иногда)/программист(приходилось проектик внутренний писать на С++ с использованием QT)/внедренец информационных систем и т.д. всего по-маленьку
Heavy
Temych
)))) может быть
Heavy
Занимаюсь ремонтом электроники, тащусь от embedd (микроконтроллеры, ПЛИСы, схемотехника). Есть несколько своих проектов в стадии "ща, щащаща..." , на работе помимо ремонта электроники занимаюсь иногда разработкой в нуждах работы. Ну, например, выкинул "мозги" старых часовых табло, заменил на "свои" на stm32, прикрутив ик-пульт, кучу матана для внешних датчиков и сигналов... 10 таких табло переделал. Реверс инжиниринг.
Heavy
Писал сайт нашвоздух.рф , на нем учился вебу. Там все корявенько так... до сих пор жив, но сертификат не продлял. Кому интересно - можете глянуть, там данные есть за 2016,2017 года. Вроде даже в 18 году кто-то туда заходил. Вот потом переделаю на реакте всё. Че еще.. Ща проект мучу на raspberry pi, где будет UI на реакте. Думаю поднять баблишка на этом. А потом этот проект кинуть в свое портфолио и идти с ним уже по фронтенду собеседоваться. Ибо по c/c++ ходил с микроконтроллерами и со своими всякими наработками - везде брали, но я видел там везде какой-то ад. Либо это затхлые заводы, либо шаражкины конторы с дедами, либо еще что-то. В общем... решил забить болт на железо, ибо потолок там не высокий. И раз уж мне понадобился реакт, решил теперь удариться с головой в фронтенд. И еще жену подтягиваю. Уже знает что такое css , умеет применять стили. Потихоньку верстаю с ней (помогаю) страничку для нее. Учу =)) Может тоже потом пойдет работать по этой теме
Heavy
все, прикрутил сертификат
Антон
даешь запрос put запрос на сервер ждешь ответ 200 и в ответе получаешб новый стейт и его отправляешь в компоненту
Heavy
Heavy
по которому будет запрос происходить каждые n секунд
Антон
Если бы я делал (и я могу ошибаться) я бы завел отдельный компонент, запихал бы туда Date и опрашивал бы из него раз в минуту или 3. Это если точность не критична (та же соцсеть). Если критична, то смотрел ьы в сторону сокетов и подписок. Все зпвисит от api сервера и потребности программы
Антон
во фронте уровень 58 уроков) так что по фронту могу быть сииильно не прав
Антон
ну или асигхронности, сделать зппрос на новое сообщение например и пока оно не придет, ну собственно не будет ответа)
iKey
Ребята, ещё такой вопрос. По сути же для работы с реактом нужно владеть java script.. Какого уровня примерно будет достаточно (от 1 до 10)?
Антон
но думаю последний вариант дикий костыль😀
Антон
я начинал с freecodecamp там нахватал минимума и сюда. я бы свой js оценил на 0.5
Heavy
iKey
Heavy
А вообще - не надо бояться. И смущаться. Что не понятно - спрашивай везде. Но в гуглах уже все вопросы освещены. Рунет уже давно существует, и база знаний для новичков большая в гуглах.
Heavy
База ответов
iKey
С бэкэндом работаю года 3 уже наверное. Вот хотелось бы фронтэнд освоить, именно react js, так как считаю что через пару лет все сайты на нем будут
Heavy
php
Тогда почему у тебя сомнения? Тем более 3 года.
Heavy
А там и Димыч тоже может попасть,ведь Батька может по стопам нашего КтоЕслиНеОн пойти и врубить такой же чебурнет без фейсбуков и пр.
iKey
Надеюсь их не будет) просто то чего знаю не достаточно наверное :)
iKey
Ещё такой вопросик. При сохранении js файла в react проекте страница в браузере перезагружается. Так и должно быть? Вроде в уроках не замечал чтобы перезагрузка была)
iKey
Не-а, то этого ещё не дошёл
Антон
думаю эта магия даже не от реакта, а от ноды. spring boot так же работает, а там реактом и фронтом и не пахнет)
Heavy
Блин,наврал. В Китае Vue более популярен так как его создатель китайский американец. Или американский китаец. И типа на китайском больше доков под vue. И где-то недавно смотрел,что vue набирает обороты. Очень так хорошо набирает. Но он пока очень отстает от реакта. Хотя по вакансиям в РФ vue тоже дофига
iKey
Heavy
Этот модуль вроде как вычисляет и сравнивает хэши файлов проекта. Если хэш изменился - релоад. Конечно,все через ноду работает. Но суть именно в том,что модуль этот можно всегда вырубить
Heavy
Прикол в другом. Надо ботать всё. Тогда ты постигнешь дзен. Освоил реакт - глянь на vue. Хотя бы по верхам
Heavy
И я тоже так думаю. Но в будущем хочу иметь не одну лопату,а несколько разных,бур, эксковатор, молоток,тряпочки, винтики, болтики :)))
Heavy
Нене. Ты же не видишь в сети гуляющих пакетов. Там через сокеты наверное. Просто сервак говорит:"эй, клиент, у меня тут новенькое коечо". Клиент:"ок,ща перестрою DOM".
Heavy
https://stackoverflow.com/questions/47879098/auto-reload-react-server-on-update
Heavy
Прочитал. У вебпака есть режим watch. В create react app входит webpack. Собственно,по дефолту watch включен. Только вот как работает - не совсем понятно. Читаю дальше...
Heavy
Во. Нашел
Heavy
Там оказывается несколько режимов есть
Heavy
https://m.habr.com/ru/company/Voximplant/blog/270593/
Heavy
Очень интересно. И все же через websocket
Heavy
И называется это,похоже, hot module replacement. Применительно к CRA. Черт его знает.. Надо конфиги смотреть. Ща не дома.
Temych
если приложение НЕ через CRA создавать(например, серверную часть), то можно подключить "nodemon" - мониторит изменение файлов. И в пэкэдж.джсон изменить скрипт запуска на
"start": "nodemon server.js"
тогда при сохранении измененного файла будет автоматом перезапускаться проект
Talgat
iKey
Heavy
Heavy
Помимо этого, может быть даже придется самому пересобрать приложение. Не знаю как в CRA чего настроено если чего-то вырубить
Егор
Всем привет, подскажите как отобразить заглушку "Вы используете устаревший браузер" в ie 11 ?
Heavy
Ща поищу как я делал
Егор
я уже заколебался искать решение, создал чистый проект и даже он не рендерится в ie (
Heavy
https://stackoverflow.com/questions/11219582/how-to-detect-my-browser-version-and-operating-system-using-javascript тут смотрел?
Heavy
Если есть вопросы - спрашивай
Егор
не, сюда почему не залазил, это все в index файле размещать ?
Егор
я просто думал что есть решение, что ыб сам react заглушку создал и рендерил
Heavy
Ну смотри как я вижу применение в реакте: создаешь опять же компоненту что-то типа <IEDetector/>
В ее state у тебя будет переменная isVisible