Дякую за такий чудовий контент, попалось відео в стрічці ютубу насправді українською такого лічені одиниці тому, я зрадістю підписався та вліпив лайк. Очікую нових відео, бажано кожного дня.
1. Uncontrolled input flow - нерекомендований паттерн роботи з формами 2. Over-engineering - все що було зроблено через external ref - могло/мало бути реалізовано через пропси, або через один реф. Не вводьте джунів у оману 😂
Дякую за ваш коментар 😊 погоджуюсь з тим, що ви написали. Але мета відео була в іншому - показати на відносно простому прикладі, як працює useImperativeHandle. А що до uncontrolled form - ніби не рекомендований, але така дуже популярна бібліотека, як React Hook Form, наскільки пам'ятаю, використовує саме його. Чому? Бо дуже сильно знижується кількість ре-рендерів компоненту.
@@SimpleFrontendUA я гадаю що процес навчання це 50% - розказати що таке молоток, і 50% - які бувають цвяхи. Якщо вчити молотка на шурупах - це погано побудований освітній процес, а потім приходять джуни на проект і треба їх перевчати. Я розумію що сегмент укр ютубу для IT ще дуже слабенький, але це конструктивна критика, врахувавши яку - можна підвищити рівень контенту. Чи ви гадаєте що не можна було це показати на прикладі двох семантично-нейтральних компонентів?)
Так, розумію. Є багато аспектів, які треба врахувати при створенні цих прикладів.. За конструктивну критику дуже дякую 😊 Це те, що як раз мені потрібно, бо створюючи контент, я сам вчуся :) вчити - це все ж таки не працювати над проектом, зовсім інша специфіка. Додам ремарки на тему форми до опису відео.
@@SimpleFrontendUA по ідеї, типізація інтерфейсу показує можливі методи для виклику. Як буде виглядати помилка і чи виникне вона, якщо фактично функції не буде, але вона буде описана в інтерфейсі? Чи буде пропонуватися функція в батьківському компоненті, навіть якщо вона не існує, але описана в інтерфейсі?
А, тепер зрозуміло. Ну дивіться, тип нашого компоненту CustomInput має співпадати з тим, які функції він фактично має. Можете спробувати додати нову функцію в типі, а в реалізації ні - тоді TS видасть помилку, що типи не співпадають. Звісно можна було б не окреслювати цього типу, але для цього ми і використовуємо TS 🙃 тоді ці невідповідності випливають на етапі компіляції, а не тихо чекають, поки користувач натисне на кнопку з функцією, якої немає :)
Гарне питання 👍 в JS все буде працювати так само, тільки не бути попередження про те, що CustomInput не має такої функції. В такому випадку, якщо писати код без ESLint, скоріш за все при спробі викликати неіснуючу функцію, ми отримаємо посилку, що setValue is not a function. А якщо ESLint налаштований добре, то він може про це попередити ще в IDE, шо такої функції там немає. Різниця з TS в тому, що він не скомпілюється і покаже, де помилка. А JS буде виконуватись, поки ви не натиснете на кнопку, яка викликає неіснуючу функцію.
Спасибо мужик
😊💪
Підписався на ваш канал! Дякую за якісний контент українською мовою!
Дякую 😊🇺🇦
Дякую за такий чудовий контент, попалось відео в стрічці ютубу насправді українською такого лічені одиниці тому, я зрадістю підписався та вліпив лайк. Очікую нових відео, бажано кожного дня.
Дякую, дуже приємно 😊 кожного дня хотілося б, але є теж інші обов'язки в житті 😄 буду намагатись хоч 2 на тиждень
Дякую
Супер, треба тільки інший приклад не з формами.
1. Uncontrolled input flow - нерекомендований паттерн роботи з формами
2. Over-engineering - все що було зроблено через external ref - могло/мало бути реалізовано через пропси, або через один реф.
Не вводьте джунів у оману 😂
Дякую за ваш коментар 😊 погоджуюсь з тим, що ви написали. Але мета відео була в іншому - показати на відносно простому прикладі, як працює useImperativeHandle.
А що до uncontrolled form - ніби не рекомендований, але така дуже популярна бібліотека, як React Hook Form, наскільки пам'ятаю, використовує саме його. Чому? Бо дуже сильно знижується кількість ре-рендерів компоненту.
@@SimpleFrontendUA я гадаю що процес навчання це 50% - розказати що таке молоток, і 50% - які бувають цвяхи. Якщо вчити молотка на шурупах - це погано побудований освітній процес, а потім приходять джуни на проект і треба їх перевчати.
Я розумію що сегмент укр ютубу для IT ще дуже слабенький, але це конструктивна критика, врахувавши яку - можна підвищити рівень контенту.
Чи ви гадаєте що не можна було це показати на прикладі двох семантично-нейтральних компонентів?)
А так те що ви робите - респект!
Так, розумію. Є багато аспектів, які треба врахувати при створенні цих прикладів.. За конструктивну критику дуже дякую 😊 Це те, що як раз мені потрібно, бо створюючи контент, я сам вчуся :) вчити - це все ж таки не працювати над проектом, зовсім інша специфіка. Додам ремарки на тему форми до опису відео.
Дуже дякую 😊🙏🇺🇦
А якщо не додавати функцію, а тільки оновити інтерфейс
Не зовсім зрозумів питання :)
@@SimpleFrontendUA по ідеї, типізація інтерфейсу показує можливі методи для виклику. Як буде виглядати помилка і чи виникне вона, якщо фактично функції не буде, але вона буде описана в інтерфейсі? Чи буде пропонуватися функція в батьківському компоненті, навіть якщо вона не існує, але описана в інтерфейсі?
А, тепер зрозуміло. Ну дивіться, тип нашого компоненту CustomInput має співпадати з тим, які функції він фактично має. Можете спробувати додати нову функцію в типі, а в реалізації ні - тоді TS видасть помилку, що типи не співпадають. Звісно можна було б не окреслювати цього типу, але для цього ми і використовуємо TS 🙃 тоді ці невідповідності випливають на етапі компіляції, а не тихо чекають, поки користувач натисне на кнопку з функцією, якої немає :)
Ок, а якщо без TS, то як воно буде працювати ? ми ж в App в useRef передаємо типи
Гарне питання 👍 в JS все буде працювати так само, тільки не бути попередження про те, що CustomInput не має такої функції. В такому випадку, якщо писати код без ESLint, скоріш за все при спробі викликати неіснуючу функцію, ми отримаємо посилку, що setValue is not a function. А якщо ESLint налаштований добре, то він може про це попередити ще в IDE, шо такої функції там немає. Різниця з TS в тому, що він не скомпілюється і покаже, де помилка. А JS буде виконуватись, поки ви не натиснете на кнопку, яка викликає неіснуючу функцію.
@@SimpleFrontendUA Дякую, користна інфа, цікавий контент 🦾
Дякую 😊🙏