Комментарии 8
А написали бы сразу на $mol у вас бы получилось ещё меньше кода:
$my_form_demo $my_form sub /
<= Text_value $my_text
title @ \Text Input
value?val <=> text_value?val \
<= Radio_value $my_radio
title @ \Radio Input
value?val <=> radio_value?val \
<= Dropdown_value $my_dropdown
title @ \Dropdown Input
value?val <=> dropdown_value?val \
options <= dropdown_value_options /string
<= Date_value $my_date
title @ \Date Input
value?val <=> date_value?val $mol_time_moment
<= Checkbox_value $my_checkbox
title @ \Chekbox Input
value?val <=> checkbox_value?val false
<= Slider_value $my_slider
title @ \Slider Input
value?val <=> slider_value?val 0
<= Submit $my_button_major
title @ \Submit
click?val <=> submit?val null
<= Reset $my_button_minor
title @ \Reset
click?val <=> reset?val null
И не пришлось бы рефакторить.
Есть ощущение, что это не сокращение до 30 строк, а разбиение на компоненты.
Просветите плиз, какие преимущества React Hook Form, перед antd form?
Принципы работы схожи, но react hook form умеет работать с обычными даже html полями, в antd нужны обертки и обязательное наличие свойств value, onChange компонентов. Более гибкая работа с ошибками к примеру, их можно вывести куда угодно без проблем, в antd попробуйте такое же реализовать с пару строк. В третьих это очень маленькая и быстрая библиотека а не гигант.
Извините, но заявленный в заголовке результат не достигнут. 30 строк — это только сборка, а декомпозированные инпуты в общей сложности ещё и на большее потянут, чем прежние 165. Не собираюсь спорить с тем, что декомпозиция — хороший тон, что декомпозированный код лучше читается и вообще гибче и удобнее, чем лапша, но это всё не значит, что мы уменьшили объём кода в 5-6 раз. Статья хорошая, но заголовок кликбейтный, а это — зло.
Рефакторинг компонента React со 165 до 30 строк