Знову бачу непорозуміння з використання контексту, тому давайте ще раз.
Маємо проблему - props drilling, коли ми змушені передавати пропси через декілька компонентів лише для якогось компоненту який лежить в самому низу.
Це погано, тому що ми змінюємо компоненти які не мають нічого знати про ці пропси, не кажучи вже про зайву роботу. Тому цю проблему вирішують або стейт менеджером, або навіть просто контекстом.
І тут з'являється нюанс - контекст буде завжди викликати перерендер УСІХ компонентів які його використовують. Навіть якщо дані які їм потрібні не змінилися. А, це, в свою чергу, буде викликати перерендер дочірніх компонентів, що викликає ефект доміно.
І саме тому, контекст бажано використовувати лише для даних які не змінюються, або мало змінюються - наприклад дані користувача, системні дані накшталт списку країн, локалей, тощо. А ще, бажано його дробити, щоб він не перетворювався на монстра з 500 рядків.
Підсумки - використовуйте контекст, він корисний, але для даних що рідко або взагалі не змінюються. Використовувати контекст для даних які змінюються багато протягом короткого проміжку часу (координати миші, позиція колонки при drag&drop) не варто.
@reactbeginners
Post #517
1.64K
- 👍 37
- ✍ 4
- ❤ 1