Free React For Beginners
3.46K subscribers
231 photos
5 videos
1 file
385 links
💻 Про #React та #frontend та #веб розробку
🧑‍🎓 Для початківців і не тільки

👉 https://www.youtube.com/@reactdev
Download Telegram
Наступне відео про Next.JS та API майже готове і виходить на цьому тижні, але дочитайте до кінця.

Це що б ви не думали що я нічого не роблю 😆

Але зараз не про це, а про збори.

По-перше, дуже дякую 🤗 всім хто долучився до збору Сергія (він теж дякує) - ми закрили всі слоти на one to one лише спільнотою, я навіть не викладав це в LinkedIn. Вже сьогодні починаю консультації.

А, по-друге, буквально через годину після того як я запостив про збір Сергія, до мене по допомогу звернулися мої дуже добрі знайомі які через два тижні відправляються на 0 і їм потрібен генератор та сонячна панель задля автономності, тому вибору немає - я оголошую збір на передчасний день народження

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
16👍5
ЗБІР ЗАКРИТО!

Передчасне день народження, або збори ніколи не бувають вчасно


Одному з підрозділів 112 батальйону ТРО (який доречі приймав активну участь в захисті київського неба) терміново потрібне живлення - хлопці вже найближчим часом відправляються працювати на 0. Хлопців я знаю особисто, просто так вони не просять.

Їм потрібні гарна сонячна панель та комбінований дизель генератор, загальна ціна питання на сьогодні - 64_000 гривень.

В якості подяки, через монобанк, я розіграю:

1. Дві розписані гільзи 30 калібру які були випущені нещодавно під час відбиття атаки шахедів на Київ. Доречі, шахед таки поцілили то ж ці гільзи з цілою історією.

2. За найбільший донат - книгу "Грокаємо алгоритми" українською.

Не буду казати як це важливо і скільки користі цей підрозділ вже приніс - ви самі це бачите і чуєте.

Я не часто роблю збори, тому прошу всіх і кожного допомогти гривнею, репостом та лайком. Рахуйте це як подарунок мені (і всім нам на день народження)

Монобанка
Номер картки - 5375411215740007

Якщо з грошима все складно (розумію) - будь-ласка, напишіть коментар підтримки збором в LinkedIn та пошерте, аби його побачило якомога більше людей.

Звіт і фото будуть обов'язково, всім дякую!

@reactbeginners
❤‍🔥17👍132
Навіщо потрібен React.Context і як не відстрелити собі ногу

Контекст в #React це засіб передачі даних та сутностей всередині застосунку.

Найкраще він підходить для двох речей:

Зберігання даних що потрібні всьому застосунку і які майже ніколи не змінюються, а їх зміна має призводити до перемалювання більшої частини застосунку, наприклад:

1. Дані користувача та стан аутентифікації
2. Локаль та часовий пояс
3. Налаштування теми, якщо ви використовуєте CSSinJS

Передачі сервісів, які потрібні всьому застосунку:

1. Ваша обгортка над fetch або налаштований екземпляр axios
2. Обгортка над LocalStorage, SessionStorage, IndexedDb
3. Обгортка над Navigator

Використання цих сервісів через контекст (а не напряму) дасть вам можливість легко протестувати код який їх використовує. Для цього достатньо лише передати фейкову реалізацію сервісу через провайдер і код готовий до тестування. Поставте 🤝 якщо потрібен окремий приклад такого підходу (викладу на gist)

Чому не використовувати контекст у якості стейт менеджера? Відповідь дуже проста - швидкодія. Коли змінюється значення контексту, всі хто використовує useContext з цим контекстом будуть перемальовані автоматично. Оскільки контексти зазвичай знаходяться "згори", а більшість наших компонентів функціональні, це призводить до перемалювання майже всього застосунку що може дуже не очікувано вилізти боком під час подальшого розвитку застосунку.

А якщо у вас є дані які потрібні по всьому застосунку і які часто змінюються - використовуйте стейт менеджер, наприклад RTK або MobX. Вони спроектовані саме для цього.

Хто дочитав - тримайте маленький лайфак:

Якщо ваші дані ніколи не змінюються - використання Context.Provider взагалі не обов'язкове. React буде використовувати ті дані що ви передали під час створення контексту 😎. А разом з кастомною обгорткою над useContext створення та використання сервісів стає дуже простим.

Корисно? Тоді закиньте 20 гривень на збір на "електрохарчування" для підрозділу 112 бригади ТРО - це дуже важливо, хлопці вирушають на 0. Ще й шанс виграти гарну і корисну книжку або гільзу від ППО.

Дякую пану Дмитру за ідею для допису,

Бережіть себе, допомагайте ЗСУ
,
@reactbeginners
🤝5113👍9
Цей тиждень буде дуже насиченим.

1. Вже сьогодні, о 19:00 виходить нове відео: Next.JS та побудова API. Десять хвилин але дуже насичені та корисні.
2. В цей четвер, о 19:00, разом з @FwDays буде войс чат про ідеальний фреймворк і чи є #NextJS таким. Без спойлерів)
3. В суботу (а що робити) буде прямий ефір про API в Next.JS під кодовою назвою - як розпарсити монобанку. (лінка пізніше)

Сподіваюся буде корисно, бережіть себе та допомагайте ЗСУ,
@reactbeginners
❤‍🔥20👍722
Ось так мене поздоровив @FwDays на день народження)

Дякую вам! Єдине про що шкодую - навряд чи зможу потрапити до вас на конфу в цьому році. А ті хто зможе - сходіть не пожалкуєте!

Та не думайте що я дякую лише великим внескам. Дякую і Чорнобаянам, і Житомиру, і тим хто скидає "не багато, але від щирого серця" і тим хто пішов у термінал аби поповнити збір і тих хто по декілька разів)) Ви великі молодці, я радий бути одним з вас!

Загалом ми вже зібрали 38_288 з 63_491 гривні, тобто 60% збору! Найбільші донати - 10_000 грн. (відмовились приймати участь в розіграші книги). та 5_000 грн.

Продовжуємо, більша частина вже пройдена!
21👍8
Відео про Next.JS та API вже доступне для перегляду

План:


- Навіщо нам API
- Як будується раутинг для API
- Як отримати параметри запиту
- Як відповісти на запит
- Та про деякі нюанси використання API в #NextJS

Єдиний мінус - схоже я знову зі звуком облажався, хоч плач(

Тим не менше, як бачите - я не тільки з вас гроші прошу, а ще й щось корисне роблю 🙂До речі, обіцяний приклад з тестування контексту вже готовий, буде теж сьогодні.

Бережіть себе, допомагайте ЗСУ,

@reactbeginners
🔥18👍123
Free React For Beginners
Навіщо потрібен React.Context і як не відстрелити собі ногу Контекст в #React це засіб передачі даних та сутностей всередині застосунку. Найкраще він підходить для двох речей: Зберігання даних що потрібні всьому застосунку і які майже ніколи не змінюються…
Як #React контекст допомагає в тестуванні

Найкращий спосіб пояснити - показати на прикладі. Відкрийте цей гіст і давайте його розберемо

1. Створюємо об'єкт API який буде відповідати за комунікацію із зовнішнім світом і кладемо цей об'єкт в контекст за допомогою createContext
2. В довільному компоненті витягуємо об'єкт API з контексту і використовуємо його.

Поки все зрозуміло, правда? Та "магія" починається далі.

3. В нашому тесті, ми створюємо новий об'єкт API який буде більш підходящий для тестування - він не ходить в мережу, а просто повертає проміс з гарантованим результатом. Далі, ми огортаємо компонент який бажаємо протестувати в ApiContext.Provider, а в value - підсовуємо йому нашу фейкову реалізацію.

Коли React рендерить наш тестовий компонент, він знаходить наш провайдер і замість справжньої реалізації бере нашу нову, фейкову яку і використовує. Так ми можемо протестувати будь-які дані та симулювати будь-які помилки. Спробуйте, наприклад, замість Promise.resolve передати Promise.reject і побачите що станеться з цим компонентом якщо, наприклад не буде інтернету)

Питаннячка?)

П.М. Доречі, код робочий можете спробувати, треба тільки vitest доналаштувати для тестів

Бережіть себе, допомагайте ЗСУ,
@reactbeginners
9🔥3
Сьогодні Voice Chat про ідеальний фреймворк

🚀Час: 11.04 (Чт) о 19:00
🗣Спікери: Віталій Рубан, Дмитро Брагінець, Володимир Сень

Войс чат буде проходити на каналі FwDays, приєднуйтесь!
👍14🔥42
ЗБІР ЗАКРИТО! ЗВІТ ТА РОЗІГРАШ НА НАСТУПНОМУ ТИЖНІ!

Збір завмер майже на самому фініші - залишилося зібрати 7_910 гривень і я знову буду мучати вас матеріалами про
#React

А щоб все було чесно - мої 3000 гривень теж пішли на збір. Долучайтеся, поширюйте, залишилося ще трохи!


1. І трохи статистики - найбільша пожертва 10_000 гривень
2. Кількість людей що вже прийняли участь - більше 110 осіб
3. Кількість організацій що прийняли участь - 1, дякую Fwdays
4. Найкращий коментар - "Не багато, але від щирого серця!"

Кожні 50грн - шанс виграти розфарбовану гільзу від ППО, якими Київ відбивав шахедів

Всім дякую, давайте сьогодні дотиснемо аби на цьому тижні все передати
👍104🎉2
💪 Збір закрили, а ефір ніхто не відміняв!

🗓 Отже, плануйте cуботній вечір на 19:00 - буде в нас учбово-помилковий ефір про Next.JS, API та Монобанк.

Поговоримо про API та CORS, напишемо невеличкий застосунок який буде ходити в монобанку і тягти звідти зміни, так щоб у нас був лог останніх поповнень.

🎁 А ще розіграємо подаруночки)) Правда гільзи від художниці приїдуть тільки у вівторок, але це найкращий момент все одно.

Лінк на ефір буде вже завтра, як раз ще раз і нагадаю 😈.

Бережіть себе, ви допомогли ЗСУ


@reactbeginners

Нє ну ви ж не думали що я від вас так просто відстану?)
👍26😁2❤‍🔥1
Free React For Beginners
💪 Збір закрили, а ефір ніхто не відміняв! 🗓 Отже, плануйте cуботній вечір на 19:00 - буде в нас учбово-помилковий ефір про Next.JS, API та Монобанк. Поговоримо про API та CORS, напишемо невеличкий застосунок який буде ходити в монобанку і тягти звідти зміни…
Обіцяне посилання на сьогоднішній ефір про #NextJS, API та монобанк який відбудеться вже сьогодні о 19:00.

Ставте нагадування, беріть чоловіків, жінок, котів, собак, єнотів і приходьте (павуків не беріть 😂). Має бути цікаво і сподіваюся монобанк мене не забанить після цього ефіру)

Почуємось о 19:00!

Пост був змінений в зв'язку з помилкою в обкладинці. Все в силі.
👍24❤‍🔥2
Як писати чистіший код на #React

1. Робіть маленькі компоненти. Не треба складати все в купу, навіть якщо зараз це виглядає зручно - підтримувати потім буде дуже важко.

2. Розділяйте компоненти на ті що отримують дані та ті що їх відображають. Такий підхід спрощує підтримку та тестування.

3. Пишіть мінімум коду в JSX - виносьте його в блок до return. Так у вас буде блок логіки (до return, та блок відображення - те що в return)

4. Виносьте логіку в окремі функції або кастомні хуки. Компоненти потрібні для відображення, бізнес логіка має лежати окремо і бути протестована.

5. Взагалі виносьте з функцій будь-який код, що не залежить від компоненту. Оці всі магічні числа, масиви для дропдаунів - все це геть, чим менше в компоненті коду що його не стосується тим легше його читати та підтримувати.

6. Мінімізуйте useEffect. Використовуйте useEffect лише якщо немає іншого виходу - наприклад для асинхронних запитів. Намагайтеся його уникати.

7. Зберігайте локальний стейт локально. Якщо дані компоненту потрібні лише цьому компоненту - не варто додавати їх в глобальний стор.

8. Гарно спіть та повільно думайте. Вам платять за вирішення бізнес задачі, а не за кількість символів. Ясний розум - одна з основ чистого коду.

Якщо у вас є бажання та готовність пройти CodeReview в прямому ефірі - пишіть в ПМ.

Бережіть себе, допомагайте ЗСУ,

@reactbeginners
76👍15👏2
Звіт-подяка за минулий збір

😍 Ми це зробили, збір зібрано повністю, все закуплено та передано навіть раніше терміну:

Зібрано: 65_111 грн.💪💪💪

Придбано:
- Сонячна панель ECOFLOW 220W: 18_051грн. (офіціали, зробили знижку для ЗСУ)
- Генератор ECOFLOW GASEBDUAL: 43_999 + 190 грн комісія = 44_189
- Ще закупили масла для генератора, але то пішло повз банку, тому 0.

Залишок: 2_871, який я пропоную передати Сергію на збір на машину, може він нарешті його закриє вже)). Якщо ніхто не проти - завтра відправлю.

Найбільша сума: 11_941 від пана Дениса, книжка відправляється йому. Дякую за такий значний внесок, чекай на свій подарунок, думаю тобі сподобається ;)

😉Дві гільзи також вже мають своїх власників і будуть відправлені завтра, чекайте. Я б їх собі залишив, такі вони гарні)

🤗Також дякую усім хто допомагав та поширював цей збір:

BeerJS Житомир
@FwDays
ItJunior
YouDon'tKnowJS
Художниця пані Катерина (анонміно, хоча все зробила безкоштовно та швидко)

❤️❤️❤️Та найбільше дякую усім вам, хто хоча й не був зобов'язаний віддавати свої власні гроші, але все ж таки це зробив. Віримо що рано чи пізно, але у нас буде мир.

Фотозвіт наступним постом)
10👍6
13🔥7👍3