Мне что , каждое перебирать руками чтобі передать в дочерний компонент?
Весь обьект передавать
Ну так тебе ж по итогу в initialState надо передать ВСЕ поля юзера, т.е. обьект юзера. Отдельно поля перебирать а потом складывать как-то тупо
А если например не юзер а документ какой то. То тоже через стейт передавать? Юзер один , а доков много.
Передают через пропсы. Стейт просто хранит. Если тебе надо все поля документа, то логично было бы передать весь. Если не все, то передавай каждое поле отдельно, или что я бы посоветовал, это начать пользоваться адаптерами — функциями трансформаторами структур, из одной в другую; и ими уже отсекать ненужные поля.
Это функционал реакта?
Так же адаптеры подойдут, если у тебя бекенд какую то неудобную херню присылает. Перегоняешь в удобный формат и красота.
Нет, реакт это тупая рендерилка, он больше ничего нормально не умеет. Чем быстрее ты это поймёшь, тем быстрее ты прокачаешься по скилам
Ну после JS реакт кстати не так сильно удивил, разве что предоставил возможность разделить компоненты на более логичные блоки вместо мессива функций.
Я от этого прям кайфую.
Ну вот именно. Кроме компонентного подхода он ничего больше не предлагает. А туда засунули псевдо-стм и люди теперь изобретают велосипеды что бы обойти ограничения реакта, вместо того что бы сразу выкинуть эту затею, и делать то что умеет реакт лучше всего — рендерить на основании пропсов
Еще лучше реакт с typeскриптом идет, там вообще огонь получается по коду. Но лучше начинать разработку по хорошему осваивать веб разработку с html, css, js, а потом лезть уже по фреимворкам.
Вообще не огонь учитывая проблемы его, но это тема для @ts_cool
Интересно даже какие ограничения у реакта, я сколько их помню там все решалось служебными функциями если что-то надо было сделать на том же js/
Нельзя ничего сделать без процеса рендера
А так же все компоненты реакта, это закрытая коробка, к которой сбоку или снаружи не подобраться
Если писать саит на чистом JS с css без html, то там по сути тоже самое, только функции создать, добавить текст контент, удалить и отправить занесены под капот фреимворка.
Тогда вопрос. Зачем тебе реакт?
Мне фактический надобности нету в реакте, сейчас больше по вью и наксту работаю. Но больше на JS писать саиты понравилось, автоматизировал рендер элементов и логические события, ну а далее просто наполнение пишешь.
Хитро ушёл от вопроса. Но сам ответ не дал. 🤔
Попробуй сделать хоть-немножко сложную форму на реакт хуках, с зависимыми полями. Там станет сразу понятно, что реакт посасывает в этом плане, и лучше сразу брать молоток для гвоздей а не микроскопом бить
Ну с формой имел дело, как правило их состояние хранил в 1 хуке куда в своиства все поля пихал, а валидацию проводил до отправки формы, не скажу что 100% надежно, как говориться можно и лучше. Но как хорошую наработку держу на всякий.
А теперь вспомни момент, что когда одна часть проего состояния изменяеться, меняеться ссылка на весь обьект и ВСЕ ререндериться. Надо обмазаться useCallback, useMemo, memo,передавать всё пропами, но и тогда к нам приходит *массив* и сложность возрастает в разы с каждой вложенностью. Посос так то. А берёшь какой-то мутабельний стм/форм-менеджер и как по маслу идёт
Хзхз, и без этих либ для форм я думаю нормально справляться можно Разве что вспомню yamik ( так ведь назывался? ), полезная фигня для валидации полей и тп
Да есть такое, если изменяется 1 своиство переменной, то вся переменная перезаписываеся, ну а оттуда и перерендер у тех кто смотрит ее состояние. Если полей от 1 до до 10 там не так много шансов что будут баги, а если больше, то надо делить.
Я пробовал формиком это в начале пилить. Оказалось он полностью на хуках. Когда у меня на 1 ввод в инпут нужно было 30секунд смотреть на зависнувший екран, я осознал что что-то не то.
Обсуждают сегодня