en
Feedback
CodeRoll | Frontend

CodeRoll | Frontend

Open in Telegram

OZ β€” Π›ΡƒΡ‡ΡˆΠ΅Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° / IT инструмСнты, курсы ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ β€” Π’Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° JS, HTML, CSS, React, Vue,Angular ΠšΡƒΠΏΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ: https://telega.in/c/coderoll Π§Π°Ρ‚: https://t.me/coderoll_chat По всСм вопросам ΠΏΠΈΡˆΠΈΡ‚Π΅ сюда - @yankovsky_ads

Show more
4 114
Subscribers
-124 hours
-177 days
-4230 days
Posts Archive
βš›οΈ ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ React: Π₯ΡƒΠΊΠΈ, ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ΠΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ! Π’ΠΎΡ‚ пост для Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°
βš›οΈ ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ React: Π₯ΡƒΠΊΠΈ, ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ΠΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ! Π’ΠΎΡ‚ пост для Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², посвящСнный ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ ΠΈ соврСмСнным ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌ Π² React. βš›οΈ ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ React: Π₯ΡƒΠΊΠΈ, ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ΠΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ πŸ”₯ Если Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с основами React, ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прилоТСния. πŸ”„ React Hooks: Π Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΡ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ состояниСм ΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ эффСктами Hooks, прСдставлСнныС Π² React 16.8, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ классовых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, сохраняя ΠΏΡ€ΠΈ этом всС возмоТности управлСния состояниСм ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. - useState: ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ состояниС Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. - useEffect: УправляСт ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ эффСктами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ подписки, API-запросы ΠΈ манипуляции с DOM. - useMemo ΠΈ useCallback: ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, прСдотвращая Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ€Π΅Π½Π΄Π΅Ρ€Ρ‹ ΠΈ создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

const MyComponent = () => {
  const [count, setCount] = useState(0);

  useEffect(() => {
    document.title = `You clicked ${count} times`;
  }, [count]);

  const increment = useCallback(() => setCount(count + 1), [count]);

  return <button onClick={increment}>Click me</button>;
};

🌐 React Context: Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ состояниСм ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΠΌΡƒ ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ) Ρ‡Π΅Ρ€Π΅Π· Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π±Π΅Π· нСобходимости ΠΏΡ€ΠΎΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ пропсы Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ контСкста: const MyContext = React.createContext(defaultValue); ИспользованиС Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…: const value = useContext(MyContext); ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ "prop drilling", Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ использованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ⚑️ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: ΠœΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΡ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ Concurrent Mode Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° React Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… аспСктов: ΠœΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΡ с React.memo, useMemo, useCallback β€” ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ Ρ€Π΅Π½Π΄Π΅Ρ€Ρ‹, Ссли пропсы ΠΈΠ»ΠΈ состояниС Π½Π΅ измСнились. Code Splitting с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React.lazy ΠΈ Suspense β€” позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, сниТая Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ вСс прилоТСния. Concurrent Mode β€” Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Ρƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ React Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

πŸ“˜ 5 must-read ΠΊΠ½ΠΈΠ³ ΠΏΠΎ JavaScript 🎯 JavaScript β€” язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ постоянно развиваСтся, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π³Ρ€Π΅Π±Π½Π΅ Π²ΠΎΠ»Π½Ρ‹, Π²Π°
πŸ“˜ 5 must-read ΠΊΠ½ΠΈΠ³ ΠΏΠΎ JavaScript 🎯 JavaScript β€” язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ постоянно развиваСтся, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π³Ρ€Π΅Π±Π½Π΅ Π²ΠΎΠ»Π½Ρ‹, Π²Π°ΠΆΠ½ΠΎ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒ свои знания. Π’ΠΎΡ‚ 5 ΠΊΠ½ΠΈΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ стоит ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ: "You Don't Know JS" (Kyle Simpson) β€” сСрия ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ ΠΊΠ½ΠΈΠ³, которая Π³Π»ΡƒΠ±ΠΎΠΊΠΎ погруТаСтся Π² ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ языка. "JavaScript: The Good Parts" (Douglas Crockford) β€” классика, которая Π½Π°ΡƒΡ‡ΠΈΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΈ эффСктивный ΠΊΠΎΠ΄. "Eloquent JavaScript" (Marijn Haverbeke) β€” ΠΊΠ½ΠΈΠ³Π°, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ JavaScript, Π° ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ свои знания. "JavaScript: The Definitive Guide" (David Flanagan) β€” ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ "Π±ΠΈΠ±Π»ΠΈΠ΅ΠΉ JavaScript". πŸ“š Π­Ρ‚ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ JavaScript ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ. Π§Ρ‚Π΅Π½ΠΈΠ΅ β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ!

πŸ”§ CSS Grid β€” созданиС слоТных ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями 🎨 CSS Grid β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для создания слоТных ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ²,
πŸ”§ CSS Grid β€” созданиС слоТных ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями 🎨 CSS Grid β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для создания слоТных ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с вСрсткой. πŸ’‘ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ: - Grid Container β€” ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ - сСтка. - Grid Items β€” элСмСнты, располоТСнныС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. - Grid Lines β€” Π»ΠΈΠ½ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ структуру сСтки. 🌐 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простого ΠΌΠ°ΠΊΠ΅Ρ‚Π° с Grid:

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
}

.item {
  background-color: #f4f4f4;
  padding: 20px;
  text-align: center;
}

⏩ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠœΠ°ΠΊΠ΅Ρ‚ с трСмя Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ отступами. CSS Grid ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π±Π΅Π· слоТных вычислСний. πŸ“˜ ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ рСсурсы: CSS Grid Garden β€” Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ ΠΈΠ³Ρ€Π° для изучСния CSS Grid. ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. MDN Web Docs: CSS Grid Layout β€” ДокумСнтация ΠΎΡ‚ Mozilla. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ описаниС всСх свойств, связанных с CSS Grid, с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ объяснСниями.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ Function components ΠΎΡ‚ class components? ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ отличия это: 1) ΠšΠ»Π°ΡΡΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΠΈΠ·-Π·Π° большого количСства встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² 2) ΠšΠ»Π°ΡΡΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ большС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° 3) ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ синтаксичСских Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ И самый Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚, классовыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ React Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ React Π² Ρ…ΡƒΠΊΠ°Ρ…. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎ классовыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹? Π”Π°, Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Ρ‚ ситуаций ΠΊΠΎΠ³Π΄Π° классовый ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ error boundary, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для своСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· классового ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½ΠΎ Π² противовСс Π΅ΡΡ‚ΡŒ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΉΡ‚ΠΈ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт React ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классовый ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Ρ‚ error boundary, ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ сСбя, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΎ спСцифичной Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ‚Π°ΠΌ Π½Π΅Ρ‚. Π’ΠΎΡ‚ ссылка Π½Π° Error boundary, Ссли интСрСсно https://ru.react.js.org/docs/error-boundaries.html

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Π²Π΅Π±-прилоТСниях Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ - ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с кэшСм Π½Π° сторонС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΡ€ΠΈ создании
ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Π²Π΅Π±-прилоТСниях Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ - ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с кэшСм Π½Π° сторонС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΡ€ΠΈ создании Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ повсСднСвной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ дСсктопный Chrome. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ панСль инструмСнтов ΠΈ ΠΎΠ½ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Но ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° смартфонах, начинаСтся Π³Π΅ΠΌΠΎΡ€Ρ€ΠΎΠΉ - ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° смартфон Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, Ссли Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ старый Бсылка #ΡΡ‚Π°Ρ‚ΡŒΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ key? Для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? Key ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ React ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹. Key Π½ΡƒΠΆΠ΅Π½ для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ опрСдСлСния порядка элСмСнтов Π² спискС. Key всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ присваиваСтся Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅: ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

const howUseKey = () => {
  const array = [1, 2, 3];
  return (
    <div>
      {array.map((item) => (
        <div key={item}>{item}</div>
      ))}
    </div>
  );
};
ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (ΠŸΡ€ΠΈΠ³Π»ΡΠ΄ΠΈΡ‚Π΅ΡΡŒ ΠΊ its a trap):

const howNotUseKey = () => { 
 const array = [1, 2, 3];
  return (
    <div>
      {array.map((item) => (
        <div className="its a trap">
          <div key={item}>{item}</div>
        </div>
      ))}
    </div>
  );
};

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс массива ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ нСприятныС Π±Π°Π³ΠΈ. Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ id ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ key ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь

Π”Π°Ρ€ΠΈΠΌ Π±ΠΈΠ»Π΅Ρ‚ Π² ΠΌΠΈΡ€ большого IT 🎫 ΠžΡ‚ тСбя Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ JS+React ΠΎΡ‚ Π³ΠΎΠ΄Π° ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
Π”Π°Ρ€ΠΈΠΌ Π±ΠΈΠ»Π΅Ρ‚ Π² ΠΌΠΈΡ€ большого IT 🎫 ΠžΡ‚ тСбя Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ JS+React ΠΎΡ‚ Π³ΠΎΠ΄Π° ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π₯ΠΎΠ»Π΄ΠΈΠ½Π³Π° Π’1 β€” ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π»ΠΈΠ΄Π΅Ρ€ΠΎΠ² российского ИВ-Ρ€Ρ‹Π½ΠΊΠ°, Π² ΠΏΠΎΡ€Ρ‚Ρ„Π΅Π»Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ 800+ высокотСхнологичных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ 70+ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΈ услуг. РСгистрируйся Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-интСнсив Π² ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΡˆΠΊΠΎΠ»Ρ‹ Π’1 ΠΈ ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°ΠΉ Π½Π°Π²Ρ‹ΠΊΠΈ бСсплатно всСго Π·Π° 1 мСсяц. Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΎΡ„Ρ„Π΅Ρ€ ΠΎΡ‚ Π’1 πŸ” ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½Ρ‹ΠΉ фаст-Ρ‚Ρ€Π΅ΠΊ Π΄ΠΎ ΠΌΠΈΠ΄Π»Π° Π² Π±ΠΈΠ³Ρ‚Π΅Ρ…Π΅. ВсСго Π·Π° ΠΏΠΎΠ»Π³ΠΎΠ΄Π° ΠΌΡ‹ выпустили 500+ спСциалистов. Участники ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Ρ„ΠΈΠ½Ρ‚Π΅Ρ…-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ИВ-ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ участников ΠΆΠ΄ΡƒΡ‚ Π² ΡŽΠ½ΠΈΡ‚Π°Ρ… ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… сСрвисов, развития ИИ-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ консалтинга. βŒ›οΈ БыстроС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅: 1 мСсяц. πŸ’» Π“ΠΈΠ±ΠΊΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: всС этапы ΠΎΠ½Π»Π°ΠΉΠ½, занятия ΠΏΠΎ Π²Π΅Ρ‡Π΅Ρ€Π°ΠΌ. 🌏 Π Π°Π±ΠΎΡ‚Π° Π² Π’1 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° с Ρ‚Π΅Ρ€-Ρ€ΠΈΠΈ Π Π€ ΠΈ БСларуси. Π’Ρ‹ с Π½Π°ΠΌΠΈ? Π’ΠΎΠ³Π΄Π° ΠΏΠΎΠ΄Π°Π²Π°ΠΉ заявку Π΄ΠΎ 24 июля! Π‘Ρ‚Π°Ρ€Ρ‚ интСнсива β€” 29 июля. Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО "Π’1". ИНН 7720484492.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ количСство пСрСрисовок? React Custom Hook: useRenderCount Π’ этой сСрии статСй ΠΌΡ‹ отправимся Π² ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ ΠΏΠΎ ΠΌΠΈΡ€Ρƒ
Как ΡƒΠ·Π½Π°Ρ‚ΡŒ количСство пСрСрисовок? React Custom Hook: useRenderCount Π’ этой сСрии статСй ΠΌΡ‹ отправимся Π² ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ ΠΏΠΎ ΠΌΠΈΡ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ…ΡƒΠΊΠΎΠ² React, открывая для сСбя ΠΈΡ… ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². БСгодня ΠΌΡ‹ сосрСдоточимся Π½Π° Ρ…ΡƒΠΊΠ΅ useRenderCount, ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ…ΡƒΠΊΠΎΠ², доступных Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ…ΡƒΠΊΠΎΠ² React. Бсылка #react

JavaScript: структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1 Π’ этой сСрии статСй ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, прСдст
JavaScript: структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1 Π’ этой сСрии статСй ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, прСдставлСнныС Π² этом Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. БСгодня ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ самых простых ΠΈ популярных структурах Π΄Π°Π½Π½Ρ‹Ρ…: односвязном ΠΈ двусвязном списках, стСкС ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. Код, прСдставлСнный Π² этой ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… сСрии, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Бсылка #js

РСшСниС Π·Π°Π΄Π°Ρ‡ Front End с ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ. Promise Pool Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ Promise Pool (Leetcode 2636) Π”Π°Π½ массив асинхронных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
РСшСниС Π·Π°Π΄Π°Ρ‡ Front End с ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ. Promise Pool Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ Promise Pool (Leetcode 2636) Π”Π°Π½ массив асинхронных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ functions ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡƒΠ»Π° n. НСобходимо Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ promisePool. Она Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Promise, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ function. Бсылка #js

РСшСниС Π·Π°Π΄Π°Ρ‡ Front End с ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ. Throttle Π—Π°Π΄Π°Ρ‡Π° Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Throttling часто даСтся Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ front end Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅
РСшСниС Π·Π°Π΄Π°Ρ‡ Front End с ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ. Throttle Π—Π°Π΄Π°Ρ‡Π° Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Throttling часто даСтся Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ front end Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ throttle, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ callback ΠΈ врСмя оТидания. Π’Ρ‹Π·ΠΎΠ² throttle() Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя callback Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Бсылка #js

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π² консоли ?
Anonymous voting

ПояснСниС ΠΊ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ Object.entries(person) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… массивов, содСрТащий ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ значСния: [ [ 'name', 'John' ], [ 'age', 30 ] ]. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for-of ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ элСмСнты массива - Π² Π΄Π°Π½Π½ΠΎΠΌ случаС подмассивы. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ подмассивы Π² Ρ†ΠΈΠΊΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ const [x, y]. x равняСтся ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту Π² подмассивС, y - Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ подмассивом являСтся [ "name", "John" ], Π³Π΄Π΅ x равняСтся name, Π° y - John. Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ подмассивом являСтся [ "age", 30 ], Π³Π΄Π΅ x равняСтся age, Π° y - 30.


const person = {
  name: "John",
  age: 30
}

for (const [x, y] of Object.entries(person)) {
  console.log(x, y)
}

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° React Π²Π°ΠΆΠ½Π° для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°. Π’ΠΎΡ‚ нСсколько ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² React: 1. ИспользованиС React.memo React.memo ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдотвращСния Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ссли ΠΈΡ… пропсы Π½Π΅ измСнились.
const MyComponent = React.memo(function MyComponent(props) {
  // Component logic
});
2. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС useMemo ΠΈ useCallback Π­Ρ‚ΠΈ Ρ…ΡƒΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тяТСлых вычислСний ΠΈΠ»ΠΈ созданиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€Π΅. useMemo ΠΌΠ΅ΠΌΠΎΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
useCallback ΠΌΠ΅ΠΌΠΎΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:
const memoizedCallback = useCallback(() => {
  doSomething(a, b);
}, [a, b]);
3. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° (Code Splitting) Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ части прилоТСния. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React.lazy ΠΈ Suspense.
const OtherComponent = React.lazy(() => import('./OtherComponent'));

function MyComponent() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <OtherComponent />
    </Suspense>
  );
}
4. ДинамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° (Dynamic Import) ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Π½Π΄Π»Π°.
import(/* webpackChunkName: "moduleA" */ './moduleA').then(module => {
  // ИспользованиС модуля
});
5. ИзбСганиС Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ стрСлочных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² пропсах Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°ΠΌ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ².
// ВмСсто этого:
<MyComponent onClick={() => doSomething()} />

// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
const handleClick = useCallback(() => doSomething(), []);
<MyComponent onClick={handleClick} />
6. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ shouldComponentUpdate ΠΈ PureComponent Для классовых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ shouldComponentUpdate ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PureComponent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски выполняСт повСрхностноС сравнСниС пропсов ΠΈ состояния.
class MyComponent extends React.PureComponent {
  render() {
    return <div>{this.props.value}</div>;
  }
}
7. ИзбСганиС большого количСства состояний ΠΈ контСкста Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ состояний Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ВмСсто этого ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ связанныС состояния Π² ΠΎΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠ².
const [state, setState] = useState({
  name: '',
  age: 0,
  address: ''
});

// ИзмСнСниС состояния:
setState(prevState => ({ ...prevState, name: 'John' }));
8. ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ React Profiler, для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСго прилоТСния ΠΈ выявлСния ΡƒΠ·ΠΊΠΈΡ… мСст. 9. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π—Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ изобраТСния асинхронно ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ lazy loading для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³. 10. ИспользованиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ инструмСнтов Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ react-window ΠΈΠ»ΠΈ react-virtualized для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списков. Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹Π΅ прилоТСния Π½Π° React.

await vs yield Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Effection 3.0 ΠΈ React 18 дСкабря 2023 Π³ΠΎΠ΄Π° Π²Ρ‹ΡˆΠ΅Π» Ρ€Π΅Π»ΠΈΠ· Effection 3.0 - типизированная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°
await vs yield Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Effection 3.0 ΠΈ React 18 дСкабря 2023 Π³ΠΎΠ΄Π° Π²Ρ‹ΡˆΠ΅Π» Ρ€Π΅Π»ΠΈΠ· Effection 3.0 - типизированная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π° async/await Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… (Structured Concurrency and Effects for JavaScript). Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ сравним ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈ async/await ΠΈ расскаТу ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Effection Π² React для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с асинхронным ΠΊΠΎΠ΄ΠΎΠΌ: - Race condition - AbortController - Clean up - Debounce Бсылка #ΡΡ‚Π°Ρ‚ΡŒΠΈ

React.js: Знакомимся с useReducer, Axios ΠΈ JSON Server Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создания ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€Π½ΠΎΠ³ΠΎ списка НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΡ‚Π½
React.js: Знакомимся с useReducer, Axios ΠΈ JSON Server Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создания ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€Π½ΠΎΠ³ΠΎ списка НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅ΡΡŒ ΠΊ React, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ β€” это настоящСС ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅, ΠΈ с этим Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚ΡŒΡΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСгодня я Ρ€Π΅ΡˆΠΈΠ» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€Π½Ρ‹ΠΉ список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ нСсколько ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ слоТноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниями с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ useReducer. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π΅Π»ΠΎΠΌ ΠΌΡ‹ создадим ΠΌΠΎΠΊ API сСрвСра с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JSON Server, Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ axios для Π²Ρ‹Π·ΠΎΠ²Π° API ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ…ΡƒΠΊΠΎΠΌ useReducer для управлСния состояниСм. Бсылка #react

НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CSS (mod, round) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Sprite Sheet Π±Π΅Π· JS Sprite Sheet β€” это Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅,
НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CSS (mod, round) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Sprite Sheet Π±Π΅Π· JS Sprite Sheet β€” это Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, хранящихся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ эффСктивный способ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство HTTP-запросов ΠΊ сСрвСру ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π²Π΅Π±-страницы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС ΠΊΠ°Π΄Ρ€Ρ‹ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Бсылка #css

ПояснСниС ΠΊ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ ΠœΠ΅Ρ‚ΠΎΠ΄ push Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ массива, Π° Π½Π΅ сам массив. Устанавливая newList Ρ€Π°Π²Π½Ρ‹ΠΌ [1, 2, 3].push(4), ΠΌΡ‹ устанавливаСм newList Ρ€Π°Π²Π½Ρ‹ΠΌ 4. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ пытаСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ push для newList. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ newList являСтся числом 4, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ push - выбрасываСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ TypeError.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π² консоли ?
Anonymous voting