20.03.21 © 2024 Программизд 02
 
Форумы / Общение / Клепал формы на React, много думал.
Сообщения: 108 / Страницы: 1  2  3  4  5  все  
Клепал формы на React, много думал.
    #2995
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
Научился тут на React / TypeScript формы клепать.
Всё началось с того, что барин приказал в вики большую табличку собрать.
Получилась мегаучётная система с автоматическим обновлением данных наблюдающей скриптиной.
К тому же получилось заманить в эту систему других людей, дав им кнопки "добавить" и "редактировать", сбросив часть инфо-собирательной работы с себя.
Неделя ушла, а эффекта сильно больше чем если бы я в вики сидел клепал табличку как дебил.
React конечно пездец формоёбы придумали.
TypeScript оказывается автор Delphi придумал, работая в микрософте.
Короче формоёбы кругом.
Ну да, получается быстро и удобно.
В общих чертах понятны принципы работы, а как там алгоритм определяет какую часть DOM-дерева перестроить - хуй проссыт.
Формоёбов такие частности не ебут.
Наклепал, работает.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #2996
Пиздатик Скрыть профиль Поместить в игнор-лист
Пиздатик
Гость
Это хорошо или плохо?
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #2997
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
Пиздатик  19.09.2020, 02:50
Это хорошо или плохо?
Это довольно круто.
Ощущаю себя универсалом многостаночником.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #2999
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  19.09.2020, 02:48
как там алгоритм определяет какую часть DOM-дерева перестроить - хуй проссыт
Компонент хранит виртуальный дом от предыдущего рендера. Новый сравнивается с предыдущим по упрощенному алгоритму. К примеру, если было <p><span>text</span><input/></p> , а стало <p><input/></p> , то инпут будет пересоздан "вместо спана", сравниватель не просечет, что достаточно просто удалить спан, как если бы они с инпутом располагались в обратном порядке
Лигафоны Рубацова  19.09.2020, 02:48
Формоёбов такие частности не ебут.
Наклепал, работает.
Не, в реакте приходится таки думать. В основном, как экономить рендеры, и как обновляться более точечно
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3032
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
Бурят5432  19.09.2020, 09:47
Лигафоны Рубацова  19.09.2020, 02:48
как там алгоритм определяет какую часть DOM-дерева перестроить - хуй проссыт
Компонент хранит виртуальный дом от предыдущего рендера. Новый сравнивается с предыдущим по упрощенному алгоритму. К примеру, если было <p><span>text</span><input/></p> , а стало <p><input/></p> , то инпут будет пересоздан "вместо спана", сравниватель не просечет, что достаточно просто удалить спан, как если бы они с инпутом располагались в обратном порядке
Лигафоны Рубацова  19.09.2020, 02:48
Формоёбов такие частности не ебут.
Наклепал, работает.
Не, в реакте приходится таки думать. В основном, как экономить рендеры, и как обновляться более точечно
Не, ну понятно. Но дичайше круто!
У меня была ситуация: большая табличка и попап-модальное-окно поверху, которое вызывалось для редактирования какой-то строки.
Сначала пездец на нажатие каждой клавиши в этом окне тормозило всё.
Потому что я рендерил таблицу и модальное окно в одном рендере и хранил стейт в таблице-с-модалом.
А потом додумался модал оформить как компонент и хранить его стейт в нём самом.
Производительность значительно выросла, мать её.
 
Рейтинг: 0 / 1
Не нравится: Бурят5432
Клепал формы на React, много думал.
    #3035
Дырокол
Скрыть профиль Поместить в игнор-лист
Участник
начать учить реакт как купить отбеливатель ануса. вроде пока ничего страшного не случилось, но ружьё на стене уже висит
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3048
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  19.09.2020, 18:49
У меня была ситуация: большая табличка и попап-модальное-окно поверху, которое вызывалось для редактирования какой-то строки.
Сначала пездец на нажатие каждой клавиши в этом окне тормозило всё.
Потому что я рендерил таблицу и модальное окно в одном рендере и хранил стейт в таблице-с-модалом.
А потом додумался модал оформить как компонент и хранить его стейт в нём самом.
Производительность значительно выросла, мать её.
Во, это пример того, что дробление на компоненты - дверь в оптимизацию в реакте, а не только в удобство. Да, суммарный vdom крупнее из-за оберток, зато перерендеры только где надо.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3049
блохастые утки Скрыть профиль Поместить в игнор-лист
блохастые утки
Гость
Бурят5432  19.09.2020, 21:17
Лигафоны Рубацова  19.09.2020, 18:49
У меня была ситуация: большая табличка и попап-модальное-окно поверху, которое вызывалось для редактирования какой-то строки.
Сначала пездец на нажатие каждой клавиши в этом окне тормозило всё.
Потому что я рендерил таблицу и модальное окно в одном рендере и хранил стейт в таблице-с-модалом.
А потом додумался модал оформить как компонент и хранить его стейт в нём самом.
Производительность значительно выросла, мать её.
Во, это пример того, что дробление на компоненты - дверь в оптимизацию в реакте, а не только в удобство. Да, суммарный vdom крупнее из-за оберток, зато перерендеры только где надо.
Ну в общем интересная концепция.
Но на голом JS аналоги будут быстрее.
Хотя ты их обосрешься пилить )
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3051
Дырокол
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  19.09.2020, 02:48
Наклепал, работает.
вообще, круто конечно.
взял и наклепал
мне бы так
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3052
A Serious Man
Скрыть профиль Поместить в игнор-лист
Администратор
Лигафоны Рубацова  19.09.2020, 18:49
Бурят5432  19.09.2020, 09:47
Лигафоны Рубацова  19.09.2020, 02:48
...
Компонент хранит виртуальный дом от предыдущего рендера. Новый сравнивается с предыдущим по упрощенному алгоритму. К примеру, если было <p><span>text</span><input/></p> , а стало <p><input/></p> , то инпут будет пересоздан "вместо спана", сравниватель не просечет, что достаточно просто удалить спан, как если бы они с инпутом располагались в обратном порядке
Лигафоны Рубацова  19.09.2020, 02:48
...
Не, в реакте приходится таки думать. В основном, как экономить рендеры, и как обновляться более точечно
Не, ну понятно. Но дичайше круто!
У меня была ситуация: большая табличка и попап-модальное-окно поверху, которое вызывалось для редактирования какой-то строки.
Сначала пездец на нажатие каждой клавиши в этом окне тормозило всё.
Потому что я рендерил таблицу и модальное окно в одном рендере и хранил стейт в таблице-с-модалом.
А потом додумался модал оформить как компонент и хранить его стейт в нём самом.
Производительность значительно выросла, мать её.
А обновлять части через жеквери, что угодно на странице разве нельзя, обязательно через реакт?
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3053
блохастые утки Скрыть профиль Поместить в игнор-лист
блохастые утки
Гость
Люблю когда в проекте можно и формы поклепать и ядро субд поменять и в говне поковыряться по пояс и т.п. Это позволяет ответить на вопрос "ой а что ты делаешь" просто "да хуй знает, что попало" и не напрягаться обьяснять узкую специфику.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3055
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
A Serious Man  19.09.2020, 21:41
А обновлять части через жеквери, что угодно на странице разве нельзя, обязательно через реакт?
Если фронт на реакте, то проще и удобнее через реакт. Не приходится вообще возиться с домом, просто меняешь стейт или например данные в редуксе/мобиксе, UI сам подхватывает. Иногда приходится напрямую, реакт не умеет всякий там скролл, селекшен, на канве рисовать и т.д., элемент помещается в реф и допиливается напильничком.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3062
A Serious Man
Скрыть профиль Поместить в игнор-лист
Администратор
Бурят5432  19.09.2020, 22:00
Если фронт на реакте, то проще и удобнее через реакт
С этим не поспоришь, да. Но если фронт на жквери и там уже не одна табличка и модалка, а 51+, то особой надобности в реакте нет..
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3063
блохастые утки Скрыть профиль Поместить в игнор-лист
блохастые утки
Гость
Интересная темуля этот реакт и т.п., я бы попестел с бурятом о ней.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3066
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
А были в истории подобные реакту опердени?
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3067
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  19.09.2020, 23:49
А были в истории подобные реакту опердени?
Виртуальный дом вроде как реактовское изобретение. Потом, конечно, много где появился, в том же vue.js. Есть ещё другие подходы, например, svelte, где вся эта хрень разруливается на момент сборки, и в результате все превращается в обычный js. Но я там не в курсе, что и как. Реально сейчас если по фронтовым вакансиям смотреть расклады, то в основном реакт, местами vue или ангуляр. По остальному хрен чо найдешь.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3068
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
Бурят5432  19.09.2020, 23:56
Лигафоны Рубацова  19.09.2020, 23:49
А были в истории подобные реакту опердени?
Виртуальный дом вроде как реактовское изобретение. Потом, конечно, много где появился, в том же vue.js. Есть ещё другие подходы, например, svelte, где вся эта хрень разруливается на момент сборки, и в результате все превращается в обычный js. Но я там не в курсе, что и как. Реально сейчас если по фронтовым вакансиям смотреть расклады, то в основном реакт, местами vue или ангуляр. По остальному хрен чо найдешь.
А зачем им виртуальный?
Написать алгоритм, который идёт и понимает "на живом" чё надо поменять (чем он отличается от "намерений" некого рендерера) нельзя было?
Короче ладно, не хотелось бы ковыряться в этой херне, это отдельный диссер.

А расскажи вообще про мир TypeScript.
Как там принято вести процесс разработки.
Основные инструменты под linux например.
Ну я так понял там npm юзают для качбы модулей.
node.js там где-то место занимает какое-то, незнаю какое.
Компилятор из TS в JS какой-то бинарный юзают или юзают написанный на самом TS, который запускается под node.js?
Вот расскажи всю культуру.

Желательно, скажем, для linux-юзера, который в vim код пишет, к примеру.

А расскажи ещё про другие мощные опердени в мире JS, сильно повлиявшие на мир и гланый их принцип - за счет чего они всех на понт берут.
Вот реакт понятно за счёт чего - разраб может позволить себе забыть про DOM и писать код как будто на java в банке, менять стейт формоклёпства, а формоклёпство само себя перерисует.

jQuery ещё помню была такая бодяга. Но там вроде взлетело за счёт сокращения тысяч обычных JS-функций.

Ещё вот я слышал про Ангуляр какой-то. Нахрен он всрался? Чем от реакта отличается?
Был у нас один разраб на ангуляре, помню что он сильно страдал.
Точнее он изначально был PHP-разрабом, но вызвался написать одну внутреннюю тулзу.
И на этом поседел и чуть не охуел. В итоге со всеми пересрался и уволился. НО проект перед этим довёл до конца.
Помню только что тяжело ему было как-то, вечно ходил охуевал и ругался в духе "блять, какая сука это придумала, ну что за пердь, блять, ну блять, ну пиздец!".
А редукс это чё такое?
Изменено: 20.09.2020, 00:09 - Лигафоны Рубацова
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3069
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
Соречка, я предыдущий пост редактировал 20 раз.
Просьба взирать на него только ТЕПЕРЬ.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3072
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  20.09.2020, 00:05
А зачем им виртуальный?
Написать алгоритм, который идёт и понимает "на живом" чё надо поменять (чем он отличается от "намерений" некого рендерера) нельзя было?
Так виртуальный дом - это оно и есть. По сути джаваскриптовый объект. Текущее и предыдущее дерево рендера, они сравниваются для нахождения изменений, изменения в реальном доме выполняются точечно.
Лигафоны Рубацова  20.09.2020, 00:05
А расскажи вообще про мир TypeScript.
Как там принято вести процесс разработки.
Основные инструменты под linux например.
Ну я так понял там npm юзают для качбы модулей.
node.js там где-то место занимает какое-то, незнаю какое.
Компилятор из TS в JS какой-то бинарный юзают или юзают написанный на самом TS, который запускается под node.js?
Вот расскажи всю культуру.
Node.js - фундамент. Вся сборка, все преобразования ts в js, автотесты, вообще абсолютно все фронтовые тулзы пишутся на js и выполняются в ноде. То есть неважно что у тебя там - винда, макбук, Линукс, - похуй, всё одинаково. Поставил году, npm, и всё, ты в игре.

Npm - это манагер пакетов. Изначально была только в ноде, потом как появились сборщики, вебпак там всякий и т.д., можно стало и на фронте. То есть когда ты в своем фронтовом коде что-то испортишь из node_modules (какой нибудь установленный модуль), сборщик этот модуль запакует в сборку.

Собственно, сборщики - это вот самый большой прорыв за последние годы. Сейчас уже нигде по старинке не пишут, если брать серьезный фронт, а не сайтики простенькие.

TypeScript тоже крутая штука, навесили типы на js, теперь он их проверяет перед компиляцией. Писанины больше, зато сопровождать код проще, а уж какой автокомплит в том же вебшторме появился - просто песня. В виме конечно такого нету, там бонусы тайпскрипта не так ощущаются.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3073
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
Бурят5432  20.09.2020, 00:27
Лигафоны Рубацова  20.09.2020, 00:05
А зачем им виртуальный?
Написать алгоритм, который идёт и понимает "на живом" чё надо поменять (чем он отличается от "намерений" некого рендерера) нельзя было?
Так виртуальный дом - это оно и есть. По сути джаваскриптовый объект. Текущее и предыдущее дерево рендера, они сравниваются для нахождения изменений, изменения в реальном доме выполняются точечно.
Лигафоны Рубацова  20.09.2020, 00:05
А расскажи вообще про мир TypeScript.
Как там принято вести процесс разработки.
Основные инструменты под linux например.
Ну я так понял там npm юзают для качбы модулей.
node.js там где-то место занимает какое-то, незнаю какое.
Компилятор из TS в JS какой-то бинарный юзают или юзают написанный на самом TS, который запускается под node.js?
Вот расскажи всю культуру.
Node.js - фундамент. Вся сборка, все преобразования ts в js, автотесты, вообще абсолютно все фронтовые тулзы пишутся на js и выполняются в ноде. То есть неважно что у тебя там - винда, макбук, Линукс, - похуй, всё одинаково. Поставил году, npm, и всё, ты в игре.

Npm - это манагер пакетов. Изначально была только в ноде, потом как появились сборщики, вебпак там всякий и т.д., можно стало и на фронте. То есть когда ты в своем фронтовом коде что-то испортишь из node_modules (какой нибудь установленный модуль), сборщик этот модуль запакует в сборку.

Собственно, сборщики - это вот самый большой прорыв за последние годы. Сейчас уже нигде по старинке не пишут, если брать серьезный фронт, а не сайтики простенькие.

TypeScript тоже крутая штука, навесили типы на js, теперь он их проверяет перед компиляцией. Писанины больше, зато сопровождать код проще, а уж какой автокомплит в том же вебшторме появился - просто песня. В виме конечно такого нету, там бонусы тайпскрипта не так ощущаются.
А я вот какой-то yarn юзал. yarn watch запускаю в одной консолине, в другой кодю.
Первый на сохранения реагирует ребилдом JS-ин.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3074
Лигафоны Рубацова Скрыть профиль Поместить в игнор-лист
Лигафоны Рубацова
Гость
Бурят5432  20.09.2020, 00:27
Лигафоны Рубацова  20.09.2020, 00:05
А зачем им виртуальный?
Написать алгоритм, который идёт и понимает "на живом" чё надо поменять (чем он отличается от "намерений" некого рендерера) нельзя было?
Так виртуальный дом - это оно и есть. По сути джаваскриптовый объект. Текущее и предыдущее дерево рендера, они сравниваются для нахождения изменений, изменения в реальном доме выполняются точечно.
Лигафоны Рубацова  20.09.2020, 00:05
А расскажи вообще про мир TypeScript.
Как там принято вести процесс разработки.
Основные инструменты под linux например.
Ну я так понял там npm юзают для качбы модулей.
node.js там где-то место занимает какое-то, незнаю какое.
Компилятор из TS в JS какой-то бинарный юзают или юзают написанный на самом TS, который запускается под node.js?
Вот расскажи всю культуру.
Node.js - фундамент. Вся сборка, все преобразования ts в js, автотесты, вообще абсолютно все фронтовые тулзы пишутся на js и выполняются в ноде. То есть неважно что у тебя там - винда, макбук, Линукс, - похуй, всё одинаково. Поставил году, npm, и всё, ты в игре.

Npm - это манагер пакетов. Изначально была только в ноде, потом как появились сборщики, вебпак там всякий и т.д., можно стало и на фронте. То есть когда ты в своем фронтовом коде что-то испортишь из node_modules (какой нибудь установленный модуль), сборщик этот модуль запакует в сборку.

Собственно, сборщики - это вот самый большой прорыв за последние годы. Сейчас уже нигде по старинке не пишут, если брать серьезный фронт, а не сайтики простенькие.

TypeScript тоже крутая штука, навесили типы на js, теперь он их проверяет перед компиляцией. Писанины больше, зато сопровождать код проще, а уж какой автокомплит в том же вебшторме появился - просто песня. В виме конечно такого нету, там бонусы тайпскрипта не так ощущаются.
А если у меня логика запилена на голом JS без фреймворков, ну точнее возможно есть свой фреймворк небольшой, то видимо тоже есть смысл писать на TS и юзать сборщики yarn - опердени и весь этот рулез, да? Типчики проверить, обфусцировать сразу на лету.

А кстати чем щас обфусцировать код принято у нормальных людей? Ну точнее паковать, как это называется...
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3075
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  20.09.2020, 00:05
jQuery ещё помню была такая бодяга. Но там вроде взлетело за счёт сокращения тысяч обычных JS-функций.
jQuery когда-то божил. Ибо во первых, дохренища было кроссбраузерных различий, не было querySelector, да много чего не было. Теперь на нативном js проще кодить стало, браузерное api тоже дохрена развивается.

Ангуляр пока ещё используется, в какое-то время был самый распространенный, сейчас вытесняется реактом.
Лигафоны Рубацова  20.09.2020, 00:05
А редукс это чё такое?
Управление состоянием UI. То есть состояние выносится из компонентов отдельно. Проект становится проще сопровождать, ибо сложные компоненты со стейтом та ещё жопа. Мне из стейт-манагеров больше mobX нравится, вот это именно то, как должно быть. Но тут в двух словах не опишешь, много всего.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3076
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  20.09.2020, 00:29
А я вот какой-то yarn юзал. yarn watch запускаю в одной консолине, в другой кодю.
Первый на сохранения реагирует ребилдом JS-ин.
Yarn это как npm, тоже устанавливает пакеты.
Watch запускает локальный сервачок и начинает следить за файлами с кодом. Как что-то поменяешь, делается быстрая досборка, и сразу можно смотреть что получилось. Для дебага, в общем.
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3077
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  20.09.2020, 00:32
А кстати чем щас обфусцировать код принято у нормальных людей? Ну точнее паковать, как это называется...
Плагин к вебпаку. Раньше был uglifyjs, теперь terser, на фронте быстро всё меняется)
 
Рейтинг: 0 / 0
Клепал формы на React, много думал.
    #3078
Бурят5432
Скрыть профиль Поместить в игнор-лист
Участник
Лигафоны Рубацова  20.09.2020, 00:32
А если у меня логика запилена на голом JS без фреймворков, ну точнее возможно есть свой фреймворк небольшой, то видимо тоже есть смысл писать на TS и юзать сборщики yarn - опердени и весь этот рулез, да? Типчики проверить, обфусцировать сразу на лету.
Если что-то относительно крупное, то да, со всей этой кухней будет проще.
 
Рейтинг: 0 / 0
Форумы / Общение / Клепал формы на React, много думал.
Сообщения: 108 / Страницы: 1  2  3  4  5  все  
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые участники ...
Найденые участники ...
x
x
Закрыть


Просмотр
Close
Debug Console [Select Text]