Telegram statistics channel - @jabascript

Telegram community logo - Жабаскрипт (веде Віктор Турський)
2021-07-06

Жабаскрипт (веде Віктор Турський)

Number of subscribers:
4638
Photos:
23 
Videos:
Links:
288 
Category:
Technology
Description:
Авторський контент для JavaScript розробників, але не завжди про JS:). Пишу про архітектуру, best practices, продуктивність, безпеку, інструментарій. Viktor Turskyi (@koorchik), Cofounder at Webbylab, SWE at Google Рекламу не розміщую!

👥 Number of subscribers

Average/Day: 0
Average/Week: -3
Average/Month: -19
Total:
4 638

👁️ Average views per message

Average/Day: +1000
Average/Week: +4036
ERR: 90.09%
ERR (24): 21.56%
Average for 30 days:
4 178

📊 Messages per Day

Last day: 0
Week average: 0
Average per day
0.1

Status change history

Officially not confirmed
2022-05-25

Wall channel Жабаскрипт (веде Віктор Турський) - @jabascript

"One React mistake that's slowing you down"Натрапив на цікавий пост про проектування API компнентів. Часто бувають ситуації, коли необхідні дані для компонента знаходяться десь вгорі по ієрархії компонентів. Й для того, щоб передати щось вниз, дані мають пройти декілька слоїв. Що з цим роботи?Давайте здалеку.Це одна із проблем, яка виникає, коли ви працюєте з React. Насправді, така проблема виникає в принципі в програмуванні. Наприклад, коли нам необхідно передати колбек в функцію, й нам потрібен доступ до стейту(змінних), то нам допомогають замикання. Якщо ж замикання не підтримуються мовою (Java чи інше), то ми тут можна обрати інше рішення:1. Міняти API колбека, щоб він приймав стейт зовні й передавати його від викликаючої функції. В React це схоже на випадок, коли ми передаєм пропси через дерево компонентів. 2. Зберігати стейт в глобальних змінних. В React це схоже на випадок з контекстом.3. Інкапсулювати стейт в ООП-ному об'єкті й передавати об'єкт з внутрішнім стейтом й зробити метод call/execute/run/handle/whatever. Й це буде аналог замикання. Навіть є такий патерн - "команда", або функтори (ті, що callable objects) в Python. В React це схоже на передачу children.4. ІншеЩо обрати? Як кажуть - "it depends". Автор статті радить передавати children й, в контексті його прикладу з лейаутом, я з ним згоден. Але завжди зважуйте на свій конкретний випадок. Загальна ідея, коли ви проектуєте API React компонента така сама, як й проектування будь-якого іншого API. API компонента залежить від його відповідальності. Припустимо, що у нас є TweetsFeed й всередені є дві колонки твітів. Ієрархія може виглядята так:TweetsFeed => RightContent => TweetDetails Це не відповідальність RightContent зібрати дані для якогось TweetDetails, який ми вирішили розмістити з правого боку, але й можливо це й не відповідальність TweetDetails збирати дані (оскільки він тільки візуалізує). Тоді можна зробити врапер навколо TweetDetails, який вятигне дані, але можливо взагалі відповідальність всього TweetsFeed тільки в візуалізації й ніхто в TweetsFeed не має тягнути дані зовні самостійно. Всі ці "можливо" це про відповідальність компонента й коли ми проектуємо, ми спочатку думаємо про відповідальність компонента, а потім вже думаємо про API й як передати дані.СТАТТЯ: https://epicreact.dev/one-react-mistake-thats-slowing-you-down/
1300
22-12-09 09:35