How to ReactJS / Π₯Π°Π±Ρ
ΠΠ»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°, ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΎΠΊΡΡΠ³ React (ΠΊΠ°ΠΊ ΠΈ ΡΡΠΎΠ½ΡΡΠ½Π΄Π° Π² ΡΠ΅Π»ΠΎΠΌ) ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ. ΠΡΠΎΠΌΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½.
- ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ, React Π±ΡΠ» Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ°Π½Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
- Facebook ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΌ, Ρ.βΠ΅. Π½Π΅ Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΡ-ΠΌΠ΅Π½ΡΡΠ΅-ΡΠ΅ΠΌ-Facebook
- ΠΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³Π°ΠΉΠ΄ΠΎΠ² ΠΏΠΎ React ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΠ΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅, Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ HTML, CSS ΠΈ JavaScript.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΡΡ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΏΠΎ React. ΠΠ°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠ΅Π½Ρ?
Π― ΡΠ°Π±ΠΎΡΠ°Π» Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Facebook, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° React. Π’Π΅ΠΏΠ΅ΡΡ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π΅ Π² Facebook, Π° Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΡΠ°ΡΡΠ°ΠΏΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, Π° Π½Π΅ Facebook.
ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎΡ ΡΡΠ΅ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° React’Π° ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΠΎΠΉ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΡΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΠΈ Π½Π΅ ΠΈΠ·ΡΡΠ°Ρ Π΄Π²Π΅ Π²Π΅ΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ:
ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ Π²ΡΠ΅, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΠΌ Ρ React. ΠΡΠΈΡΡΡΠΏΠ°ΠΉΡΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π³Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΡΠ΅ΡΠ°Π΅Ρ.
Π’Π°ΠΊΠΆΠ΅, Π² React-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Β«ΡΡΠΏΠ΅Ρ-ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌΠΈΒ» (Β«bleeding edgeΒ»). ΠΡΠΈ ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ, Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ, ΡΠ΅ΠΌ ΡΠ΅ΠΌΡ Π²ΡΡΠ΅, ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ React, Π½ΡΠΆΠ΅Π½ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. Π ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ copy-paste HTML ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π² .html
ΡΠ°ΠΉΠ»Π΅ ΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π³Π° Π½Π΅ Π½ΡΠΆΠ΅Π½ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΈ Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π·Π° Π½Π΅Π³ΠΎ, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ React.
Π― ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΡΡΠΈΡΡ React, ΡΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΡΠΎΡΠΈΠ°Π».
npm
ΡΡΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Node.js ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ front-end ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠΎΠ² Π΄Π΅Π»ΠΈΡΡΡΡ JavaScript ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ CommonJS
ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ JavaScript. ΠΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ CommonJS
, ΠΈΠ»ΠΈ CommonJS Spec Wiki Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ CommonJS
API.
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ React Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΊ CommonJS
ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ npm
.
ΠΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΡΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CommonJS
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π² npm
) Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ²Π½ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ JavaScript βbundlerβ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΡΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² .js
ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π³ΠΎΠΌ <script>
.
ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ JavaScript ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ webpack
ΠΈ browserify
. ΠΠ½ΠΈ ΠΎΠ±Π° ΡΠ²Π»ΡΡΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ, Π½ΠΎ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ webpack
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΡ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΡΡΠΏΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ°, ΠΈ Ρ Π½Π°ΠΏΠΈΡΠ°Π» how-to Π³Π°ΠΉΠ΄ ΠΏΠΎ webpack Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΊΠ΅ΠΉΡΠΎΠ².
Π‘ΡΠΎΠΈΡ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ: CommonJS
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ require()
Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ require.js
. ΠΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΡΠΈΠ½, Ρ ΡΠΎΠ²Π΅ΡΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ require.js
. ΠΡΠΎΡ Π²ΡΠ±ΠΎΡ Π½Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ Π² ΡΡΠ΅Π΄Π΅ React.
ΠΡΠΎΠΌΠ΅ JSX (ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΠ·ΡΡΠΈΠ»ΠΈ Π² ΡΡΡΠΎΡΠΈΠ°Π»Π΅ React), Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π±Π°Π²Π½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ES6, ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ JavaScript, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ. ΠΠ·-Π·Π° Π½ΠΎΠ²ΠΈΠ·Π½Ρ, ES6 Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ , Π½ΠΎ Π²Π°Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ JavaScript ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΠ°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°ΡΡ ES6 Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° React, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠΏΡΡΠ½ΠΎ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ES6-ΠΊΠ»Π°ΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React. ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ (Π²ΠΊΠ»ΡΡΠ°Ρ Facebook) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ React.createClass()
.
βΠΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡβ (Single-page applications ΠΈΠ»ΠΈ SPA) β ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠΎΠ΄Π°. ΠΡΠΎ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠΊΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ»ΠΈΠΊΠ°Π΅Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ΅, JavaScript, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ router (ΡΠΎΡΡΠ΅ΡΠΎΠΌ).
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΎΡΡΠ΅Ρ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ React react-router. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π°Ρ Π½Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ³ΠΎ.
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΡΡΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ single-page application. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Ρ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ Flux. ΠΡΠΎ Π½Π΅Π³ΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ *ΡΠΎΠ½Π½Π°* Π΄Π΅Π·ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ΅ΡΠΈ.
ΠΡΡΠ° Π»ΡΠ΄Π΅ΠΉ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Flux. ΠΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΊ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Flux Π½Π° ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. Flux Π΄ΠΎΠ»ΠΆΠ½ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΆΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React’Π° ΡΠΎΠ±ΡΠ°Π½Ρ Π² ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π²Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ. Π ΡΡΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
Flux Π½Π΅ ΠΏΡΠΈΠ½ΠΎΡΠΈΡ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ Π²ΡΠΈΠ³ΡΡΡΠ°. ΠΠ½ΠΎΠ³Π΄Π°, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ
Π½Π΅ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ½Π°. ΠΡΠ»ΠΈ Π²Π°ΡΠΈ React ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ props
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΆΡΡΡΡ Β«Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈΒ», ΠΈΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Π°ΠΌ ΡΡΠΎΠΈΡ ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ ΠΊ Flux.
ΠΡ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Flux. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΎΠ½ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½, ΡΠΎ ΠΎΠ½ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Flux, ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Flux-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Redux. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ *ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ* Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ ΡΠΎΠ±Π»Π°Π·Π½ΠΈΡΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΡ , Π½ΠΎ ΠΌΠΎΠΉ ΡΠΎΠ²Π΅Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ.
ΠΡΠ΅-React, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ CSS-ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΠΈΠΏΠ° SASS Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ. React Π΄Π΅Π»Π°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΡΡΠΌ, ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠΎΡΠ°Ρ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠ΅Π½Ρ) ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΡΡ Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ CSS.
Π ΡΠΈΠ»Ρ ΡΡΠ΄Π° ΠΏΡΠΈΡΠΈΠ½, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π΅Π·ΡΠΌΠ½Π°Ρ ΠΈΠ΄Π΅Ρ. ΠΠ½Π° ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ media queries, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΠΈΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π½Π°ΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ React, ΠΏΠΈΡΠΈΡΠ΅ css-ΡΡΠΈΠ»ΠΈ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΏΠΎΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΡΠΎ, ΠΊΠ°ΠΊ React ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ. ΠΠ΄Π½Π° ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ , ΡΡΠΎ BEM. Π― Π±Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΈΠ·Π±Π°Π²Π»ΡΡΡΡΡ ΠΎΡ CSS-ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ React ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΏΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ (ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²) ΠΈ Π²Π°Ρ JavaScript-ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ Π΄Π»Ρ Π²Π°Ρ (Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ Π½Π° OSCON). ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ, React, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ Ρ Π»ΡΠ±ΡΠΌ CSS-ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ.
Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΒ» ΠΈΠ»ΠΈ Β«ΠΈΠ·ΠΎΠΌΠΎΡΡΠ½ΡΠΌΒ» JS. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·ΡΡΡ Π²Π°ΡΠΈ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΠΈΡ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ HTML Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° ΡΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²Π΅ΡΡ JS, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ UI, Π° React, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HTML, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½Π΅ ΡΠ΅Π½Π΄Π΅ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΡΠΈΡΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ, ΠΈΠ»ΠΈ ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠ°Ρ . ΠΠ°, Google ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΡΠΉ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, Π½ΠΎ ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠ½Π²Π°ΡΡ 2016 ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΎ, ΡΡΠΎ ΡΡΠΎ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΈΠ·-Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅Π½Π΄Π΅ΡΠ°.
Π’Π°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ Β«ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉΒ» ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π±Π΅Π· ΠΌΡΡΠ»ΠΈ ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅, Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π°, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΠΎ Π½Π΅ΠΌ. ΠΠ°ΠΌ Π½Π΅ ΠΏΡΠΈΠΉΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅.
Immutable.js ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΅ΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π² React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Ρ ΡΠΎΡΡΠΎΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΎΠ½Π° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ AJAX-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ½ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ AJAX Π·Π°ΠΏΡΠΎΡΠΎΠ², Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Relay ΠΈΠ»ΠΈ Falcor.
UPD. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΈΡΠ΅Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΠ΅ΡΠ²ΡΡ
Π°Π±Π·Π°ΡΠ΅Π², ΡΠΏΠ°ΡΠΈΠ±ΠΎ vtambourine Π·Π° ΠΏΡΠ°Π²ΠΊΠΈ
UPD2. ΠΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π»ΠΊΠΈΡ
Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ wiygn
Π‘ΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² React.js: ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ / Π₯Π°Π±Ρ
ΠΠΎΠ±ΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠΎΠΊ, Π΄ΡΡΠ·ΡΡ!
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠΈ ΠΏΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Π΄Π°Π»Π΅Π΅ β Π‘Π) Π² React.
ΠΠ΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΠ»ΠΎΠ².
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π‘Π?
Π‘Π β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ React ΠΈ React Native Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ CSS.
ΠΠ°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Β«CSS-in-JSΒ», ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ CSS ΠΏΡΡΠΌΠΎ Π² JavaScript-ΡΠ°ΠΉΠ»Π΅ (Ρ.Π΅. Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Ρ React).
Π ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π΅ React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 8 ΠΌΠ»Π½ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠΉ Π² ΠΌΠ΅ΡΡΡ ΠΈΠ· npm ΠΈ 30 ΡΡΡ Π·Π²Π΅Π·Π΄ Π½Π° GitHub.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° ΡΠΎ Π‘Π Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Ρ ΠΎΡΡ Π±Ρ Π² ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ Π·Π½Π°ΡΡ React.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ Π‘Π ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ CSS. ΠΠ°, Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ CSS Π² JS-ΡΠ°ΠΉΠ»Π΅, Π½ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΠΈΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ
- ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π‘Π Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π²Π΅Π½Π΄ΠΎΡΠ½ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΊΡΠΎΡΡΠ±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΡΡΡ
- ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠΈΠ»ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΡΡΡΡΡ
- ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ³ΠΈΠΈ ΡΠΈΠΏΠ° ΠΠΠ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π‘Π
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π‘Π Π½ΡΠΆΠ½ΠΎ ΠΈΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ:
npm i styled-components
ΠΠ°Π»Π΅Π΅ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ:
import styled from 'styled-components'
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π‘Π
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅, ΠΈΠ»ΠΈ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ npx create-react-app app-name ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, App.js.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π‘Π:
// App.js
import React from 'react'
import styled from 'styled-components'
// Π‘Π
const Button = styled.a`
background-color: teal;
color: white;
padding: 1rem 2rem;
`
const App = () => {
return (
<Button>ΠΠ½ΠΎΠΏΠΊΠ°</Button>
)
}
export default App
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄:
- ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ const Button
- styled ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π‘Π
- ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Β«aΒ» ΠΏΠΎΡΠ»Π΅ styled. ΠΡΠΎ HTML-ΡΠ΅Π³ Β«aΒ». Π Π‘Π ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ HTML-ΡΠ΅Π³ΠΈ (section, h2, div ΠΈ Ρ.Π΄.)
, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ Π² App, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π‘Π Π²Π½ΡΡΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ (ΠΈ Π΄Π°ΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ) ΡΠ΄Π΅Π»Π°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Button.js):
// Button.js
import styled from 'styled-components'
const Button = styled.a`
background-color: teal;
color: white;
padding: 1rem 2rem;
`
export default Button
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Button ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ:
// App.js
import React from 'react'
import styled from 'styled-components'
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
import Button from './Button'
const App = () => {
return (
<Container>
<Button>ΠΠ½ΠΎΠΏΠΊΠ°</Button>
</Container>
)
}
export default App
ΠΠΎΡΠΎΠ²ΠΎ.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ, Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π‘Π.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘Π
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Button, ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ (primary β Π³Π»Π°Π²Π½Π°Ρ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ, secondary β Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π°Ρ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ, danger β ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Ρ.Π΄.)
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΏΡΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠΌ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΡΠΈΠ»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΡΠΎΠΏΡΠ°:
// App.js
import React from 'react'
import styled from 'styled-components'
import Button from './Button'
const App = () => {
return (
<>
<Button>ΠΠ½ΠΎΠΏΠΊΠ°</Button>
<Button primary>ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°</Button>
</>
)
}
export default App
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° (>).
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Button:
// Button.js
import styled from 'styled-components'
const Button = styled.a`
display: imline-block;
border-radius: 3px;
padding: 0.5rem 0;
margin: 0.5rem 1rem;
width: 11rem;
border: 2px solid white;
background: ${props => props.primary ? 'white' : 'palevioletred'};
color: ${props => props.primary ? 'palevioletred' : 'white'};
`
export default Button
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ CSS-ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠΏΡΠ°.
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ background: ${props => props.primary? ‘white’: ‘palevioletred’} ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΏΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, ΡΠΎ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π±Π΅Π»ΡΠΌ, Π° ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° β palevioletred.
Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΡΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΏΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ², Π·Π°Π²ΠΈΡΡΡΠΈΡ ΠΎΡ Π½ΠΈΡ .
ΠΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ { css } ΠΈΠ· styled-components:
// Button.js
import styled, { css } from 'styled-components'
const Button = styled.a`
display: inline-block;
border-radius: 3px;
padding: 0.5rem 0;
margin: 0.5rem 1rem;
width: 11rem;
background: transparent;
color: white;
border: 2px solid white;
${props => props.primary && css`
background: white;
color: palevioletred;
`}
`
export default Button
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠΏΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ danger:
// Button.js
import styled, { css } from 'styled-components'
const Button = styled.a`
display: inline-block;
border-radius: 3px;
padding: 0.5rem 0;
margin: 0.5rem 1rem;
width: 11rem;
background: transparent;
color: white;
border: 2px solid white;
${props => props.primary && css`
background: white;
color: palevioletred;
`}
${props => props.danger && css`
backround: red;
color: white;
`}
`
export default Button
ΠΡΠ»ΠΈΡΠ½ΠΎ.
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ?
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ°-Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅Π΄ΠΈΠ°-Π·Π°ΠΏΡΠΎΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½ (Π²Π½ΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»Π°):
// Button.js
const Button = styled.a`
display: inline-block;
border-radius: 3px;
padding: 0.5rem 0;
margin: 0.5rem 1rem;
width: 9rem;
background: transparent;
color: white;
border: 2px solid white;
@media (min-width: 768px) {
padding: 1rem 2rem;
width: 11rem;
}
@media (min-width: 1024px) {
padding: 1.5rem 2.5rem;
width: 13rem;
}
`
export default Button
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ²
ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΠΌΠ΅Π΄ΠΈΠ°-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ (ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅Π»Π΅ΠΊΡΠΎΡ hover):
// Button.js
import styled from 'styled-components'
const Button = styled.a`
display: inline-block;
border-radius: 3px;
padding: 0.5rem 0;
margin: 0.5rem 1rem;
width: 9rem;
background: transparent;
color: white;
border: 2px solid white;
:hover {
border-color: green;
}
`
export default Button
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ React β Π²ΡΠ΅ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠΈ ΡΠ°ΡΡΠΈ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²? Π’.Π΅. ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ?
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΡΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ°
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ½ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ
- ΠΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ (Ρ.Π΅. ΡΡΠΈΠ»ΠΈ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)
Π Π‘Π Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ createClodabStyle.
Π‘Π½Π°ΡΠ°Π»Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’Π°ΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ App.js.
ΠΠ°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π² Π½Π΅Π³ΠΎ createClodabStyle ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΠ»ΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ GlobalStyle (Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·Π²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΠ³ΠΎΠ΄Π½ΠΎ):
// App.js
import React from 'react'
import styled, { createGlobalStyle } from 'styled-components'
import { Container, Nav, Content } from '../components'
const GlobalStyle = createGlobalStyle`
body {
margin: 0;
padding: 0;
background: teal;
font-family: Open-Sans, Helvetica, Sans-Serif;
}
`
const App = () => {
return (
<Container>
<Nav />
<Content />
</Container>
)
}
export default App
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² Π½Π°ΡΠ°Π»ΠΎ App:
// App.js
import React from 'react'
import styled, { createClodabStyle } from 'styled-components'
import { Container, Nav, Content } from '../components'
const GlobalStyle = createGlobalStyle`
body {
margin: 0;
padding: 0;
background: teal;
font-family: Open-Sans, Helvetica, Sans-Serif;
}
`
const App = () => {
return (
<>
<GlobalStyle />
<Container>
<Nav />
<Content />
</Container>
</>
)
}
export default App
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ GlobalStyle Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»Π° Π² Π½Π°ΡΠ°Π»ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ DOM ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ReactΒ Hooks / Π₯Π°Π±Ρ
ΠΡΠ»ΠΈ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ Twitter, Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π·Π½Π°Π΅ΡΠ΅ ΡΡΠΎ Hooks β-β ΡΡΠΎ Π½ΠΎΠ²Π°Ρ ΡΠΈΡΠ° React, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠΎΡΠΈΡΡ, ΠΊΠ°ΠΊ ΠΌΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ? Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Hooks.
ΠΠ΄Π½Π° ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΠΈΠ΄Π΅ΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Hooks ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ state ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ React Π±Π΅Π· Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
Π₯ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ view Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ
Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡΡΡ Π² state, ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΡ
ΠΎΠ΄Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π½Π΅Ρ Ρ
ΠΎΡΠΎΡΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈ ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ:
- ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° (High Order Components)
- render props
ΠΠΎ ΠΎΠ±Π° ΡΡΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° ΠΈΠΌΠ΅ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ.
Hooks Π½Π°ΡΠ΅Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ state, context, ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°, ref ΠΈ Ρ. Π΄., Π±Π΅Π· Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠ³ΡΡΠ·ΠΈΠΌΡΡ, Π²Π°ΠΆΠ½ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Hooks API Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ°, ΠΈ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π΅Π΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π² Π½Π΅ΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡ, ΡΡΠΎΡΡΠ°Ρ Π·Π° Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Hooks.
UPD ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π΅ΡΠ΅ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ API Π±ΡΠ»ΠΎ Π² alpha ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ React Hooks ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΅Π»ΠΈΠ· (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π°Π»ΡΡΠΎΠΉ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π½ΠΈΠ·Ρ ΡΡΠ°ΡΡΠΈ ΠΈΠ»ΠΈ Π² ΡΠ΅Π»ΠΈΠ·Π½ΡΡ Π·Π°ΠΌΠ΅ΡΠΊΠ°Ρ .
ΠΠ°ΠΊ Hooks ΡΠΎΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΒ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ
ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ React, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ½ΡΡΡ Hooksβ-βΡΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Hooks.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π°ΠΌ ΡΠ°ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
- Π£ΠΏΡΠ°Π²Π»ΡΡΡ state
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ componentDidMount() ΠΈ componentDidUpdate()
- ΠΠΎΡΡΡΠΏ ΠΊ context (static contextType)
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ React Hooks ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ :
- ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ useState() hook
- ΠΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ componentDidMount() ΠΈ componentDidUpdate(), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ useEffect() hook.
- ΠΠΌΠ΅ΡΡΠΎ static ΡΠ²ΠΎΠΉΡΡΠ²Π° contextType ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ useContext() hook.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Hooks Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡΒ React
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Hooks ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ react ΠΈ react-dom Π² Π²Π°ΡΠ΅ΠΌ package.json Π½Π° Β«nextΒ».
State ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ React. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² state ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎ Hooks, state ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅β-βΠΊΠ»Π°ΡΡΠ΅, Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Hooks ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠΎΡΡΡΠΎΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠ²Π΅Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ state. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ hook useState().
ΠΠΎΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ (ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ)β-βΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π½ΠΈΠΆΠ΅. ΠΠΎ ΠΊΠ»ΠΈΠΊΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° CodeSandBox.
ΠΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρβ-βΡΡΠΎΒ ΡΡΠ½ΠΊΡΠΈΡ
Π Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°, ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΠΈΠΌΠΏΠΎΡΡΠ° useState ΠΈΠ· React. UseStateβ β βΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½ΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ this.state.
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π° Π½Π΅ ΠΊΠ»Π°ΡΡΠΎΠΌ. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ!
Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡΒ state
ΠΠ½ΡΡΡΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ useState Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² state:
useState ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ state ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π»ΡΠ±ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ state Π² ΠΊΠ»Π°ΡΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ).
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ Π²ΡΡΠ΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ useState.
- ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, light Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΌ state (ΠΊΠ°ΠΊ this.state)
- ΠΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β-βΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ state(ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ) (ΠΊΠ°ΠΊ this.setState).
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ state Π² ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0 ΠΈΠ»ΠΈ 1.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ Π²ΠΎ view:
React ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ state
ΠΠΎΠ³Π΄Π° Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«OnΒ», ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ setOn, Π²ΡΠ·ΡΠ²Π°ΡΡΠ°Ρ setLight(1). ΠΡΠ·ΠΎΠ² setLight(1) ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ light Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΌ, Π½ΠΎ React ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ΅-ΡΠ΅Π½Π΄Π΅Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (light), ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π΄ΠΎΠ»ΠΆΠ½Π° Π»ΠΈ Π»Π°ΠΌΠΏΠ° Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΈΠ»ΠΈ Π½Π΅Ρ. Π’ΠΎ Π΅ΡΡΡ, ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ Π·Π°Π»ΠΈΠ²ΠΊΠΈ SVG Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ light. ΠΡΠ»ΠΈ light ΡΠ°Π²Π΅Π½ 0 (Π²ΡΠΊΠ».), Π’ΠΎ Π΄Π»Ρ fillColor ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ # 000000 (Π° Π΅ΡΠ»ΠΈ ΡΠ°Π²Π΅Π½ 1 (Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ), fillColor ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° # ffbb73).
Multiple States
Π₯ΠΎΡΡ ΠΌΡ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎΠ³ΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ state, Π²ΡΠ·Π²Π°Π² useState Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ ΠΠΠΠ§ΠΠΠΠ.Β
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ hooks, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ. Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ hooks ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΠΌ. Β«ΠΡΠ°Π²ΠΈΠ»Π° hooksΒ» Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ useEffect() Hook
UseEffect Hook ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ side ΡΡΡΠ΅ΠΊΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ . ΠΠΎΠ±ΠΎΡΠ½ΡΠΌΠΈ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ API, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DOM, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉβ-βΠ²ΡΠ΅, ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅, Π»ΠΈΡΡ Π±Ρ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Β«ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅Β» Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ useEffect() Hook, React Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ useEffect() Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° API ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ useState, ΡΠ°ΠΊ ΠΈ useEffect, ΠΈ ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° API Π² state.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ state
Π§ΡΠΎΠ±Ρ Β«ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΒ», Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π½Π°Ρ action Π² ΡΡΠ½ΠΊΡΠΈΡ useEffect, ΡΠΎ Π΅ΡΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Β«actionΒ» ΡΡΡΠ΅ΠΊΡ ΠΊΠ°ΠΊ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ useEffect.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ API, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½. ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ response, ΠΌΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ Π² JSON, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ setNames(data) Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ state.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Effects
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΠΈΡ ΡΠΊΠ°Π·Π°ΡΡ Π΅ΡΠ΅ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ useEffect.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΠΎ ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π°Ρ useEffect Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠ΅! Π₯ΠΎΡΠΎΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎΠ± ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΏΠ»ΠΎΡ Π°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ Ρ ΠΎΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ HTTP-Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° (ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅).
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ effects, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ useEffect, ΠΊΠ°ΠΊ ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ useEffectβ-βΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Β«Π½Π°Π±Π»ΡΠ΄Π°ΡΡΒ», Π° Π·Π°ΡΠ΅ΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΡΠ΅ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ React, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π·Π²Π°ΡΡ ΡΡΠΎΡ effect ΠΏΡΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ effect, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ .
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ useState, useEffect ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ², ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ useEffect.
ΠΡΠΈΠΌΠ΅Ρ useContext() Hook
Π’ΠΎΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π² React- ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ context: ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ React ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π°ΠΌ ΡΠ°ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ Π²Π΅ΡΡ Π° Π²Π°ΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° React Π²Π½ΠΈΠ·. ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ context, Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ props ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎ Π½ΠΈΡ Π·Π½Π°ΡΡ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° props Π²Π½ΠΈΠ· ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ Β«Π½Π΅ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Β» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π»Π°ΡΠΊΠΎΠ²ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ props drilling.
React Context ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ props drilling, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ Π΄Π΅Π»ΠΈΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Ρ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
useContext() ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ context
Π‘ useContext Hook ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ context ΡΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ useContext() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Ρontext, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ· React.createContext(), Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ context JediContext ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ React.createContext().
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ JediContext.Provider Π² Π½Π°ΡΠ΅ΠΌ App ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«LukeΒ». ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ context ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ Display(), ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ useContext, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ JediContext.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ context, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΈΠ· React.createContext, ΠΈ ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, ΡΡΠΎΡ Hook Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ context.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° context Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
ΠΡΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ JediContext Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ±ΠΎΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½ΠΎ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Display ΠΈ App Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΡ ΠΎΠΆΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ: Β«ΠΠ°ΠΊ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° JediContext ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ?Β»
ΠΡΠ²Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ JediContext.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΉΠ» context.js, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ:
ΠΈ ΠΏΠΎΡΠΎΠΌ Π² App.js (ΠΈ Display.js) Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ:
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΠ΅ΠΉΠ²)
ΠΡΠΈΠΌΠ΅Ρ useRef()Β Hook
Refs ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΡΠΏΠ° ΠΊ React ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΒ , ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ render().
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² React refs, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² React refs.
Π€ΡΠ½ΠΊΡΠΈΡ useRef() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ref.
useRef() ΠΈ ΡΠΎΡΠΌΡ ΡΒ input
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ useRef() hook.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ useRef() Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ useState(), ΡΡΠΎΠ±Ρ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ input Π² ΡΠ΅Π³ p.
Ref ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ nameRef. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ nameRef ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² input, Π·Π°Π΄Π°Π² ΠΊΠ°ΠΊ ref. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ref.
ΠΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ onClick, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ submitButton. Π€ΡΠ½ΠΊΡΠΈΡ submitButton Π²ΡΠ·ΡΠ²Π°Π΅Ρ setName (ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠ΅Π· useState).
ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ hookState, setName Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ state name. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠΌΡ ΠΈΠ· ΡΠ΅Π³Π° input, ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ nameRef.current.value.
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ useRef Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡ ref.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Hooks
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΊΡΡΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Hooks ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π΄Π΅Π»ΠΈΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Hook.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ setCounter() Hook, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ state!
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅, ΡΡΠΎΡ useCounter Hook ΠΎΡ react-use ΠΈ useCounter ΠΎΡ ΠΠ΅Π½ΡΠ°
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ useCounter, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ hook.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ useCounter ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Hooks! ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Hook ΡΠ΅ΡΠ΅Π· useState.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π΄Π²Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: increment ΠΈ decrement, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ setCount ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ count.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΡΡΠ»ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½Π°ΡΠΈΠΌ Hook.
Π: Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ?
Π: ΠΡ, ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π΅ΡΠ΅ΠΉ Π² Hooks, ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ API Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ. ΠΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π·Π΄Π΅ΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², Π³Π΄Π΅:
- ΠΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρβ-βΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Hook
- ΠΡΠΎΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρβ-βΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Hook.
ΠΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Β«ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡΒ» ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Hookβ-βΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ myCount.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅, ΡΡΠΎ Π·Π°Ρ ΠΎΡΠΈΡΠ΅, ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ³ΠΎ Hook.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ increment ΠΈ decrement ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ onClick, Π² Π½Π°ΡΠ΅ΠΌ view. ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΡΠ΅ΡΡΠΈΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ (ΠΊΠ°ΠΊ myCount) Π²ΠΎ view.
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ReactΒ Hooks
Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ Π΄Π»Ρ hooks, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ react-testing-library.
react-testing-libraryβ-βΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React. ΠΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ react-dom and react-dom/test-utils. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ react-testing-library Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ DOM ΡΠ·Π»Π°ΠΌΠΈ.
Π‘ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ hooks Π΅ΡΠ΅ Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ hook ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ ΡΠ²ΠΎΠΉ hook ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
ΠΡΠ°ΠΊ, Π½ΠΈΠΆΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ Hooks, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡ Ρ Π½Π°ΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π° Π½Π΅ Ρ Hooks Π½Π°ΠΏΡΡΠΌΡΡ. Π₯ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΡΠΈ ΡΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ React.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ useState() Hook
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ useState Hook. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° useState. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«OffΒ» Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² 0 ΠΈ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«OnΒ» Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² 1.
Π Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Ρ Π΅Π»ΠΏΠ΅ΡΠΎΠ² ΠΈΠ· react-testing-library ΠΈ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
- render, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ½ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ document.body
- getByTestId ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ DOM ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ data-testid
- fireEvent, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Β«Π·Π°ΠΏΡΡΠΊΠ°Β» ΡΠΎΠ±ΡΡΠΈΠΉ DOM. ΠΠ½Π° ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΠΊ document ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ DOM ΡΠ΅ΡΠ΅Π· Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ.
ΠΠ°Π»Π΅Π΅, Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ°, ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ data-testid ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΡΠ΅. Π‘ΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π° DOM ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ fireEvent Π΄Π»Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΈ ΡΠ΅Π»ΡΠΊΠ° ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅.
Π’Π΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡΡ onButton, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ state ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² 1, Π° ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° offButton state ΡΠ°Π²Π΅Π½ 1.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ useEffect() HookΒ
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ²Π°Ρ Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ useEffect Hook. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² localStorage. Π€Π°ΠΉΠ» index.js Π² CodeSandbox Π½ΠΈΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² localStorage, ΠΈ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠ»Π°ΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ.
Π ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠ° ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ cartItem Π² localStorage ΡΠ°Π²Π½ΡΠΌ 0, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΡΠ°Π²Π½ΠΎ 0. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠ°ΠΊ container ΡΠ°ΠΊ ΠΈ rerender ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° App ΡΠ΅ΡΠ΅Π· Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Rerender ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡΠ΅Π³ p, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΈΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΡΠ΅ΡΡ Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΡΠ΅Π»ΡΠΎΠΊ Π½Π° addButton ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΡΠ°Π²Π½ΡΠΌ 1 ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ localStorage, cartItem, ΡΠ°Π²Π½ΡΠΌ 1. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π½Π° resetButton ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π»ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΡΠ°Π²Π½ΡΠΌ 0.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ useRef ()Β Hook
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ useRef Hook, ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ useRef, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ΅ΡΡΠ°. UseRef ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ state. Π€Π°ΠΉΠ» index.js Π² CodeSandbox Π½ΠΈΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΎΠ³ΠΈΠΊΡ Π²Π²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.
Π ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠ° ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Π΅ input, ΡΠ΅Π³ p, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ref, ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π²Π²Π΅ΡΡΠΈ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ newName. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΡΠ΅ΡΡΠ΅.
ΠΠ΅ΡΠΎΠ΄ fireEvent.change ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ»Π΅ input, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ name, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ newName, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.
ΠΠ°ΡΠ΅ΠΌ ΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ref ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ newName.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Β«ΠΠ΅Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ ΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ!Β» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
Π Π΅Π°ΠΊΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Π½Π°Β Hooks
Π‘ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ React Hooks, ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠ»ΠΎ Π² Π²ΠΎΡΡΠΎΡΠ³Π΅ ΠΎΡ ΡΡΠΎΠΉ ΡΠΈΡΠΈ, ΠΈ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React Hooks. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ :
- ΠΠ° ΡΡΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΡΠΎΠ±ΡΠ°Π½Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ React Hooks.
- react-use, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΊΡΡΠ΅ΠΉ React Hooks.
- Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° CodeSandbox ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ useEffect Hook Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ react-spring
- ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ useMutableReducer, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΌΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ΅Π΄ΡΡΡΠ΅ΡΠ΅.
- ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° CodeSandbox, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΡΠ΅Π±Π΅Π½ΠΎΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π΄ΡΡΠ΅ΡΠΎΠ².
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Hooks
- ΠΡΡΠ³Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ React Hooks, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ hooks Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡΒ hooks
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ hooks, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ React ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅:
- useStateβ β βΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ state Π² Π½ΠΈΡ .
- useEffectβ β βΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ side ΡΡΡΠ΅ΠΊΡΡ. Side ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ·ΠΎΠ²Ρ API, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DOM, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ.
- useContext β- βΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π² Π½ΠΈΡ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ.
- useReducerβ β βΠ΄Π°Π΅Ρ Π½Π°ΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° Redux-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ΅Π΄ΡΡΡΠ΅Ρ
- useRefβ β βΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ref.
- useMemo β- βΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
- useCallback β βHook ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΌΠ΅ΠΌΠΎΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π»Π»Π±Π΅ΠΊΠ°.
- useImperativeMethods β-β ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ref.
- useMutationEffectsβ β βΠ°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ useEffect Hook Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ DOM-ΠΌΡΡΠ°ΡΠΈΠΈ.
- useLayoutEffect β- βΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΠ΅ΡΠ° ΠΈΠ· DOM ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅-ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ hooks β-β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ΄ΡΡΠ΅Π΅ hooks
Π‘Π°ΠΌΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π² Hooks Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅Π΄ΡΡΡΡΠΈΠ΅ Hooks. ΠΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ,β-βΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ React Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ hooks.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Hooks Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° React Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π»Π°, ΡΡΠΎ API ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. Π‘ΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠΎ Π²Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½Ρ.
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Hooks? ΠΠ°ΠΊ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° React, ΠΊΠ»Π°ΡΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ React ΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄ΡΡ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ.
Π£ Π½Π°Ρ Π½Π΅Ρ ΠΏΠ»Π°Π½ΠΎΠ² ΠΎΡΡΠΆΠ΄Π°ΡΡ ΠΊΠ»Π°ΡΡΡ. Π Facebook Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΠΈ, ΠΊΠ°ΠΊ ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΌΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡ . ΠΠΎ Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ React ΠΎΠ΄ΠΎΠ±ΡΠΈΡ Hooks, Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΠΏΠΈΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² β βΠΡΠ½ ΠΠ±ΡΠ°ΠΌΠΎΠ²
Π₯ΠΎΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Hooks ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄ΠΎΠ±ΡΡΠ΅Ρ ΠΈΠ΄Π΅Ρ Hooks, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π½ΡΡΡΡ Ρ Π½Π°ΠΌΠΈ Π½Π°Π΄ΠΎΠ»Π³ΠΎ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ
- ΠΠΎΠΌΠ°Π½Π΄Π° React ΡΠ΄Π΅Π»Π°Π»Π° Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ React Hooks, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π·Π΄Π΅ΡΡ
- API ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π·Π΄Π΅ΡΡ.
- ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ RFC, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡΡ ΡΡΠ΄Π°, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
UPD
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°:
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΊΠ°ΠΊ Π²ΡΠ·Π½Π°Π΅ΡΠ΅ Π·Π°ΡΠ΅Π»ΠΈΠ·ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΡ React 16.8 ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Hooks API. Π ΡΠ΅ΠΉΠ½Π΄ΠΆΠ»ΠΎΠ³Π΅ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠ΅ΠΉ:
β ΡΠ΄Π°Π»Π΅Π½Ρ useMutationEffect.
β ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ useImperativeMethods Π² useImperativeHandle.
β ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Π΄Π΅ΡΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² useState ΠΈ useReducer Hooks.
β Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² useEffect/useMemo/useCallback Hooks.
β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Object.is Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ useState ΠΈ useReducer.
β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ΅Π½Π΄Π΅ΡΡΡΡΡ Π΄Π²Π°ΠΆΠ΄Ρ Π² Strict Mode (DEV-only).
β ΡΠ»ΡΡΡΠ΅Π½ΠΎ lazy initialization API Π΄Π»Ρ useReducer Hook.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ.
React | ΠΡΠ½ΠΎΠ²Ρ JSX
ΠΡΠ½ΠΎΠ²Ρ JSX
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 21.10.2017
JSX ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π° JavaScript ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ XML. JSX ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π’Π°ΠΊ, Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΊΠΎΠ΄ JSX:
ReactDOM.render( <h2>Hello React</h2>, // ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ document.getElementById("app") // Π³Π΄Π΅ ΠΌΡ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ )
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JSX ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ»ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ h2, ΡΠΎ Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, JSX ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ Π² ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄ JavaScript. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Hello React</title> </head> <body> <div> </div> <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script> <script type="text/babel"> ReactDOM.render( <h3>2 + 2 = {2 + 2}</h3>, document.getElementById("app") ) </script> </body> </html>
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄ html ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π° Π½Π° Π²Π΅Π±-ΡΡΠ°Π½ΠΈΡΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
Π Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Hello React</title> </head> <body> <div> </div> <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script> <script type="text/babel"> const user = { id : 5, age: 33, firstName: 'Tom', lastName: 'Smit', getFullName: function(){ return `${this.firstName} ${this.lastName}`; } }; ReactDOM.render( <div id={user.id}> <p>ΠΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ: {user.getFullName()}</p> <p>ΠΠΎΠ·ΡΠ°ΡΡ: {user.age}</p> <p>ΠΡΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ : {new Date().toLocaleTimeString()}</p> </div>, document.getElementById("app") ) </script> </body> </html>
ΠΠ΄Π΅ΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²Π²ΠΎΠ΄ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° user, Π»ΠΈΠ±ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° Date.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ JSX ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠ΄ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² JSX Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡ className, Π° Π½Π΅ class
.
ΠΡΠΎΡΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: Π°ΡΡΠΈΠ±ΡΡ style Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ javascript.
Π ΡΡΠ΅ΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: Π² JSX ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ camel-case, ΡΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅Π²ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄Π»Ρ ΡΡΠΈΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ font-family
,
ΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΡΠΈΠ»Ρ Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ fontFamily, ΡΠΎ Π΅ΡΡΡ Π΄Π΅ΡΠΈΡ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ, Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ»ΠΎΠ²Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ
Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Hello React</title> <style> .user-info{ padding: 8px; border: 1px #ccc solid; } </style> </head> <body> <div> </div> <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script> <script type="text/babel"> const user = { id : 5, age: 33, firstName: 'Tom', lastName: 'Smit', getFullName: function(){ return `${this.firstName} ${this.lastName}`; } }; const userClassName = "user-info"; const styleObj = { color:'red', fontFamily:'Verdana' }; ReactDOM.render( <div className={userClassName} style={styleObj}> <p>ΠΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ: {user.getFullName()}</p> <p>ΠΠΎΠ·ΡΠ°ΡΡ: {user.age}</p> </div>, document.getElementById("app") ) </script> </body> </html>
Π Π΅ΡΠ»ΠΈ Π± ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ»ΠΈ ΡΡΠΈΠ»Ρ inline, ΡΠΎ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ Π±Ρ ΡΠ°ΠΊ:
<div className={userClassName} style={{color:'red', fontFamily:'Verdana'}}>
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React JS? ΠΠΎΡΠ΅ΠΌΡ ΡΡΠ°ΡΡΠ°ΠΏΡ ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ Π»ΡΠ±ΡΡ React JS Π΄Π»Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ?
Π Π΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ! Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠΎ ΡΡΠ°Π»ΠΎ ΠΌΠΎΠ΄Π½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. React JS ΡΡΠ°Π» ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ΄Ρ ΡΠΎ ΡΡΠ°ΡΡΠ°ΠΏ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅; Π²ΡΠ΅ ΡΡΡΠ΅ΠΌΡΡΡΡ ΠΊ React Π΄Π»Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΠΏΡΠΎΡΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Stack Overflow, React Π±ΡΠ» ΡΠ°ΠΌΠΎΠΉ Π»ΡΠ±ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈ ΠΊΠ°ΠΊ React JS ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΌΠ°ΡΡΡΠ°Π± Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ° Π·Π° ΡΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π² 2 ΡΠ°Π·Π°, ΠΊΡΠ°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React JS.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React JS?
React JS — ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠ°Ρ Facebook ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π°ΡΠΏΠ΅ΠΊΡΠ΅ Model View Controller ΠΈΠ»ΠΈ MVC.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ React Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ²ΠΎΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠ°ΡΡΠ°ΠΏΡ ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ Π»ΡΠ±ΡΡ React JS (10 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΡΠΈΠ½)?
# 1 Virtual DOM
Virtual DOM — ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ΄ΠΎ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°.ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΡ-ΠΏΠ°ΠΌΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² Π±Π»ΠΎΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ DOM Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
# 2 Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΡΠ΅ΠΌΡ Π²ΡΡ ΠΎΠ΄Π° Π½Π° ΡΡΠ½ΠΎΠΊ — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π»ΡΠ±ΠΎΠ³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ°, Π±ΡΠ΄Ρ ΡΠΎ ΡΡΠ°ΡΡΠ°ΠΏ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠΊ ΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΠ°.
React JS ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, React ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ React Native, Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌ ΡΠΊΡΠ΅ΠΏΠ»ΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.
# 3 Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ Π±ΡΡΡΡΠΎΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°ΡΠ΅ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Facebook ΠΈ Instagram, ΡΠ°Π½ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΡΡΡΠ°ΡΠ΅Π΅Ρ, Π½ΠΈΡΡΠΎΠΆΠ½Ρ.React JS ΠΎΡΡΠ°Π΅ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π΄Π°ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π»ΠΈΡΠΎΠΌ ΡΠ°ΡΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Vue JS ΠΈ Angular JS.
# 4 ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
React JS ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π½ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² React JS Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌΠΈ Π²ΠΊΡΡΠ°ΠΌΠΈ, ΠΆΠ΅Π»Π°Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»Π° ΠΈ Π² Π²ΠΈΠ΄Π΅ Π³Π½Π΅Π·Π΄.
# 5 Advance Performance
React JS — ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π», ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΡΠ΅Ρ, ΡΠΌΠ°ΡΡΡΠΎΠ½ ΠΈΠ»ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
ΠΠ½ Π»Π΅Π³ΠΊΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π»ΡΠ±ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΈΠ· ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ Π²ΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ². React Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
# 6 ΠΡΠΎΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎΡΠ΅ΠΌΡ React ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ Π»ΡΠ±ΠΈΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π΅Π΅ ΠΏΡΠΎΡΡΠΎΡΠ΅. ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΡΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Angular JS.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° React JS ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².React JS — ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½ΠΎ ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² ΠΈ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
Π₯ΠΎΡΡ React JS ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ.
# 7 ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ
ΠΡΠ΄ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, React JS Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΊΠ°ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΠΈΡΡ Π΄Π²ΡΡ Π·Π°ΠΉΡΠ΅Π² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React JS ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π΄ΡΡΠ³ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Angular, Backbone, jQuery ΠΈ Π΄ΡΡΠ³ΠΈΠΌ.Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ React JS Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ .
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Ρ ΡΠΈΡΠΎΠΊΠΈΠΌ ΡΠΏΠ΅ΠΊΡΡΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² React.
# 8 ΠΠΈΠ±ΠΊΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΠΎΡΠΏΡΠΈΠ½ΡΠ»ΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ React JS ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅. ΠΠ½ΠΈ Π΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π½Π΅ΡΠ΅Ρ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎ ΠΏΡΠ°Π²Π΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ React Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ.ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΌΠ΅ΡΠ°Π²ΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
React ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ΅ΡΠ°ΡΡ Π±ΡΠ΄ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ².
# 9 SEO-Friendly
ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ ΠΈ ΡΡΠ°ΡΡΠ°ΠΏΠΎΠ² Π² ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠΌ Π±ΠΈΠ·Π½Π΅ΡΠ΅, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ SEO Π½Π° ΡΠ²ΠΎΠΈΡ ΡΠ°ΠΉΡΠ°Ρ . ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Node JS, React ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ .
ΠΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΅Π³ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ.
Π₯ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π°Π²Π°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΎΠ½ΠΈ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½Ρ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
React JS Π±ΡΠ» ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΡΠ° Π΄Π»Ρ SEO.
# 10 ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ
React JS ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ·ΡΡΠ°ΡΡ.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React JS. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Ρ React JS ΠΏΡΠΎΡΠ΅ ΠΎΠ±ΡΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ JavaScript ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΡΡΠ»ΠΈ
Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ React JS — ΡΡΠΎ Π²Π°Ρ ΠΏΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, React JS ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΡΠΏΡΠ΅ΡΠ½ΡΠΉ ΠΎΠΏΡΡ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ Π»ΠΈ Π²Ρ ΡΡΠ°ΡΡΠ°ΠΏΠΎΠΌ, ΡΡΡΠ΅ΠΌΡΡΠΈΠΌΡΡ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ΠΌ, ΡΡΡΠ΅ΠΌΡΡΠΈΠΌΡΡ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ, React JS ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π² Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ Π²Π°ΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠ΅Π»Π΅ΠΉ.
Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React JS
Π: 1 — React JS — ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π°?
Ans : React JS — ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Facebook. ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Rails, PHP, Node.js ΠΈ Ρ. Π., Π ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π»ΡΠ±ΠΎΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ NGINX, Apache ΠΈ Ρ. Π.
Q: 2 — ΠΠΎΡΠ΅ΠΌΡ React Π»ΡΡΡΠ΅?
Ans : ΠΠ΄Π½Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎΡΠ΅ΠΌΡ React Π»ΡΡΡΠ΅, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π΅Π½, ΡΠ΅ΠΌ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π±ΡΠ°ΡΠ·Π΅Ρ.ΠΡΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ, ΠΏΠΎ ΡΡΡΠΈ, Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ Π°Π³Π΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΌΠΈΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ.
Q: 3 — ΠΠ°ΠΊΠΎΠ²Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React JS?
Ans : ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React JS, ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½ΠΈΠΆΠ΅:
- ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄
- SEO-ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³
- ΠΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
- ΠΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ toolset
- Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅β¦
Q: 4 — ΠΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ React JS?
Ans : React JS ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Facebook, ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ 8183 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Uber, Airbnb, Netflix, Twitter ΠΈ Ρ. Π.
.
Learn LifeCycle, Components, JSX Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ
- Home
Testing
- Back
- Agile Testing
- BugZilla
- Cucumber
- 000 9000 JS 9000 Testing 9000 9000 9000 JS 9000 9000 Testing 9000
- ΠΠ°Π·Π°Π΄
- JUnit
- LoadRunner
- Π ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Mantis
- ΠΠΎΡΡΠ°Π»ΡΠΎΠ½
- QTP
- ΠΠ°Π·Π°Π΄
- 00050005000500050005
000 RPM
SoapUI
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
- TestLink
SAP
- ΠΠ°Π·Π°Π΄
- ABAP
- APO
- ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠΉ
- Basis
- BODS
- BI
- BPC
- CO
- ΠΠ°Π·Π°Π΄
- CRM
- Crystal Reports
- MM5000
- Crystal Reports
- ΠΠ°ΡΠ°Π±ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ°
- ΠΠ°Π·Π°Π΄
- PI / PO
- PP
- SD
- SAPUI5
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
- Successfactors
- SAP Tutorials
- 8 SAP Tutorials
- ΠΠ°Π·Π°Π΄
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Perl
js
- ΠΠ°Π·Π°Π΄
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- UML
- VB.Net
- VBScript
- ΠΠ΅Π±-ΡΠ»ΡΠΆΠ±Ρ
- WPF
000
0004 SQL
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΈΡΠ΅!
- ΠΠ°Π·Π°Π΄
- ΠΡΡ Π³Π°Π»ΡΠ΅ΡΡΠΊΠΈΠΉ ΡΡΠ΅Ρ
- ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ
- Android
- ΠΠ»ΠΎΠΊΡΠ΅ΠΉΠ½
- Business Analyst
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°
- CCNA
- ΠΠ±Π»Π°ΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
- 000
000 9005
0004 COBOL
9000 Compiler
9000 .
10 Π³Π»Π°Π²Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React.js
[Π°ΠΏΡΠ΅Π»Ρ 2018: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ]
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½Π°Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠ·ΠΎ Π΄Π½Ρ Π² Π΄Π΅Π½Ρ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Β«Π±Π΅ΡΡΡΠ΅Π»Π»Π΅ΡΠ°ΠΌΠΈΒ» Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ΅Π²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΠ·ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΡΠΏΠΈΠΊΠΎΠΌ.
Reactjs ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°Π·Π²Π°ΡΡ Π±Π΅ΡΡΡΠ΅Π»Π»Π΅ΡΠΎΠΌ. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript, Π·Π°ΠΏΡΡΠ΅Π½Π½Π°Ρ Π΅ΡΠ΅ Π² 2013 Π³ΠΎΠ΄Ρ, Π±ΡΡΡΡΠΎ Π·Π°Π²ΠΎΠ΅Π²Π°Π»Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Facebook Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π΅Π΄ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Apple, PayPal, Netflix, Π° Π±ΠΎΠ»Π΅Π΅ 32 ΡΡΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΡΠΎΠ·Π΄Π°Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° React JS.
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ React Π² ΠΌΠΈΡΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΡΡ Π»Π΅Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π²Π»Π°Π΄Π΅Π»ΡΡΡ Π±ΠΈΠ·Π½Π΅ΡΠ°, ΡΠ°ΠΊ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ. Π ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React JS? ΠΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ? ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React JS ΠΈ ΠΊΠΎΠ³Π΄Π° Π»ΡΡΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ JavaScript-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ?
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π΅ΡΡΡΡ ΠΏΡΠΈΡΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React js:
# 1 ΠΠ½ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
JSX — ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π΄Π»Ρ JavaScript, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ HTML ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΡΠ»ΡΠΊΠΎΠ² Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ React.createElement Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅.
Π₯ΠΎΡΡ JSX ΡΠ°ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠΌ ΡΠΏΠΎΡΠΎΠ², ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΡ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ°Ρ ΠΈ ΡΠΏΡΠΎΡΠ°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² HTML Π² Π΄Π΅ΡΠ΅Π²ΡΡ ReactElement. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ React ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΊΠΎΠ΄Π°.
# 2 ΠΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅.
Π§Π°ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π½ΡΡ Π±ΠΎΠ»Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Facebook Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ» React Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ React js.
ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²ΠΎΠ² Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ Π»ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΡΠ»Π°ΠΆΠΎΠΊ, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ Ρ. Π.), Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠΎΡΡΠΎΡΡΠΈΠΌ ΠΈΠ· ΡΡΠΈΡ ΠΊΡΠΎΡΠ΅ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ, ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ ΠΈ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈ ΡΠΎΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ.
ΠΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ²Π΅ΡΠΎΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡ Β«Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React?Β» Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΈ Walmart — ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ . ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΠΌΠ°ΡΠΎΠΊ ΠΈ ΡΠΈΠ»ΠΈΠ°Π»ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Walmart Brazil, Walmart Chile, Asda, Massmart, Sam’s Club ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅.Π£ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π±ΡΠ΅Π½Π΄ΠΎΠ² — Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΠΌΡ ΠΎΠΏΠ»Π°ΡΡ, ΠΊΠ°ΡΡΡΠ΅Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Ρ Π»Π΅Π±Π½ΡΠ΅ ΠΊΡΠΎΡΠΊΠΈ. ΠΠ΄Π΅ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠΎΠ΄Π°. Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π²Π²Π΅Π»Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π΅ΡΡΡ npm.
# 3 ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π°ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΠ±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΠ°ΠΆΠ΅ Π½ΠΎΠ²Π΅ΠΉΡΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π΄Π²ΠΈΠΆΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°ΡΡΠΈΡ ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ DOM (ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°) ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·Π²Π°ΡΡ ΡΠΆΠ°ΡΠ½ΡΡ ΡΡΠ±Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Facebook ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° Virtual DOM — Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ DOM, Π° Π·Π°ΡΠ΅ΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ DOM.ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ DOM ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
# 4 ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
Π§ΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ°Ρ , Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ReactJS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π²Π½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π’Π°ΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
# 5 ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ SEO
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ React js ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΡΠΊΠ°Π·ΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΡΠΆΠ΅Π»ΡΠΌ JavaScript. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ React ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ DOM Π² Π±ΡΠ°ΡΠ·Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ.
Π₯ΠΎΡΡ Π² Google ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π±ΡΠ²Π°ΡΡ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Yahoo, Bing ΠΈΠ»ΠΈ Baidu. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠΎΡΠΌΠ°ΡΠΎΠ² Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Open Graph, Twitter Cards ΠΈ Ρ. Π., ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Facebook, Slack ΠΈΠ»ΠΈ Twitter Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°Ρ JS ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ SSR.
# 6 ΠΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π² ΡΡΠ΅Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. Π‘ΡΠ΅Π΄ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Reactjs — Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
React Developer Tools — ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ Π΄Π»Ρ Chrome, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Firefox.ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠΌΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
# 7 Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ React Native Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
React ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ Π½Π°Π·Π²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Β«ΡΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· — ΠΏΠΈΡΠΈ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΊ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ JavaScript ΠΈ React, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ³Π°ΡΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ iOS ΠΈ Android.
Π‘ΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² React js Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ React Native ΠΎΡΠΌΠ΅ΡΠ°ΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΎΠ±ΡΠΈΡΠ½ΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React Native, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ Skype, Tesla, Airbnb ΠΈ WalMart. Π Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΎΠ± Instagram ΠΈ Facebook — Π½Π°ΡΡΠΎΡΡΠΈΡ Π½ΠΎΠ²Π°ΡΠΎΡΠ°Ρ ΠΈ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡ .
# 8 ΠΠ½ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΎΡΡ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π²Π΅ΡΠ°Ρ : ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React js? — ΠΡΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ; ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΈ ΠΈ Π½Π° ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ V Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ MVC (ΠΌΠΎΠ΄Π΅Π»Ρ — ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ — ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠ±ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ JavaScript ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π°Ρ ΠΈ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄Π½Π΅ΠΉ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΈΠ½ΠΈΠΌΠ°Ρ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΡΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React js. ΠΠ½ Π½Π΅ Π½Π°Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΡΠ»ΠΎΠΆΠ½ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ MVVM ΠΈΠ»ΠΈ MVC. ΠΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ.ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, — ΡΡΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΊΠ»Π°ΠΌΠΈ.
# 9 ΠΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° React Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠ°Π»Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ Facebook ΠΈ Instagram, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ React GitHub Π½Π°ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 1100 ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ², Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π½Π° Stack Overflow, Π΄ΠΈΡΠΊΡΡΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠΎΡΡΠΌΠ΅, Reactiflux Chart, Freenode IRC, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ .
# 10 ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Fortune 500, ΡΠ°ΠΊ ΠΈ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΡΠ°ΡΡΠ°ΠΏΡ.
Π’ΡΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ Π²ΡΠ±ΡΠ°Π»ΠΈ Reactjs Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΉΡΠΎΠ² ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΎΠΌΠ½Π΅Π²Π°Π΅ΡΠ΅ΡΡ Π² ΡΠΎΠΌ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ React js? — ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»ΡΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π·ΡΠ°ΠΌΠΈ Π³ΠΎΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ: ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Native: Airbnb, Walmart Labs, Tesla, Tencent QQ (Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 829 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ), Baidu Mobile (Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 600 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ), Bloomberg, li.st, ΠΠΈΡΠΎΡΠΊΠΎΠΏ, ΠΠΎΡΡΠ°Π²ΠΊΠ°.com, JD.com, GoDaddy ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅. Π‘Π°ΠΉΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ React: BBC, Netflix, Dropbox, Coursera, IMDb, PayPal, Dailymotion, Chrysler, American Express, Intuit, Khan Academy, Lyft, Atlassian, New York Times, Reddit ΠΈ Π΄Π΅ΡΡΡΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ . ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΡΠΈΡ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Mochi — Pet Supplies & Food, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ React Native ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΎΠ±ΠΎΡΠΎΡΡ.
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React JS? Π ΠΊΠΎΠ³Π΄Π° Π²ΡΠ±ΠΈΡΠ°ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ?
React ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΡΡΡΡΡΠΌ, ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠΌ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡ JS-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ Β«ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌΒ».
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° React ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Vue.js, Ρ ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React. ΠΡΠΎΡΠ΅ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ Reactjs ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊ TypeScript ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Angular ΠΈΠ»ΠΈ Vue.
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΡΡΠ»ΠΈ
Π£ΡΠΈΡΡΠ²Π°Ρ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ React js, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΠ΅ΠΌΡ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ: Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ, ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠΉ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ.ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: Β«ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΡΡΠΏΠ½ΠΎΠΌΠ°ΡΡΡΠ°Π±Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ», ΠΈ ΠΎΠ½Π° Ρ ΠΎΡΠΎΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ (DOM), ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, ΡΠ΅ΠΌ Π½Π°ΡΡΠΎΡΡΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ JSX, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π‘ΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΠ°ΠΊΡΠΎΡΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ°Π·ΡΠΌΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ°ΡΡΠ°ΠΏΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ.
.