Redux: ΠŸΠΎΡ‡Π΅ΠΌΡƒ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС ....

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 20 сСнт. 2015  Β·  13ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: reduxjs/redux

ΠŸΡ€ΠΈΠ²Π΅Ρ‚,

Π― с интСрСсом ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ своС состояниС. Π― Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни понимаю, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Ρ‚Π°ΠΊ, Π½ΠΎ моя сторона, «обСспокоСнная Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ Π½Π° созданиС Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²Β», Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² JS, насколько это быстро / ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π»ΠΈΠ±ΠΎ ΠΌΠ½Π΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ старого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π½ΠΎΠ²Ρ‹ΠΉ плюс Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅) Π½ΠΎΠ²ΠΎΠ³ΠΎ состояния каТСтся ΠΌΠ½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ, Ρ‡Π΅ΠΌ простоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ состояния. Π˜Ρ‚Π°ΠΊ, я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Π° ΠΈ влияСт Π»ΠΈ ΠΎΠ½Π° Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, Ρ‡Π΅Π³ΠΎ я просто Π½Π΅ Π²ΠΈΠΆΡƒ?

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ ... я Π±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Reduct, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ядро ​​рСакции ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ DOM ... Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ состояниС ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ процСсс измСнСния состояния быстрСС ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния с Π½ΠΎΠ²Ρ‹ΠΌ состояниСм ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… частСй фактичСского ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ?

Π― ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π²ΠΎ всСм этом, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ проститС мСня, Ссли я Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΏΡƒΡΠΊΠ°ΡŽ ΠΈΠ·-Π·Π° понятия Π½Π΅ ΠΌΡƒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ состояния. МнС нравится идСя, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСизмСняСмыС Π΄Π°Π½Π½Ρ‹Π΅ ... Π½ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠ½ Π½Π΅ заботится ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ‚, являСтся Π»ΠΈ ΠΎΠ½ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ ... это просто Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ, поэтому я ΠΈΠ·ΠΎ всСх сил ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π±ΠΈΡ‚ со всСм Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ измСняСмым состояниСм.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ: состояниС Π½Π΅ клонируСтся Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ дСйствии. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ (ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ - зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ измСнилось). НапримСр, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°Ρ‡Π° рСдактируСтся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ TodoMVC, клонируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, создаСтся ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ массив Π½ΠΎΠ²ΠΎΠ³ΠΎ списка Π·Π°Π΄Π°Ρ‡, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ссли ΠΎΠ½ΠΈ Π½Π΅ измСнились. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ это Π½Π΅ Ρ‚Π°ΠΊ Π΄ΠΎΡ€ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° это становится Π΄ΠΎΡ€ΠΎΠ³ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, быстроС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ массива), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ‚Π°ΠΊΡƒΡŽ ​​как Immutable.js, которая ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстроС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ благодаря структурному Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ. Π‘ Immutable.js ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Ρ‚Π°ΠΊ Π΄ΠΎΡ€ΠΎΠ³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ большиС куски памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. НаконСц, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Immutable.js ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ эффСктивно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ измСнилось, благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ ΠΌΡƒΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ.

ВсС 13 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ВсС Π΄Π΅Π»ΠΎ Π² прСдсказуСмости ΠΈ надСТности.

Π Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π² redux - это чистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Π½Π΅Ρ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ внСшнСС состояниС этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°ΡŽΡ‚ Π±Ρ‹Ρ‚ΡŒ чистыми. А Ссли ΠΎΠ½ΠΈ Π½Π΅ чистыС, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ. И это Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ошибки, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ.

Благодаря написанию чистых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ мСньшС ошибок ΠΈ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ. А ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° горячСго модуля (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ°Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ чистых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) - это турбокомпрСссор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

И Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ бСсплатныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠΌ β„–328.

ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ: состояниС Π½Π΅ клонируСтся Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ дСйствии. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ (ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ - зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ измСнилось). НапримСр, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°Ρ‡Π° рСдактируСтся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ TodoMVC, клонируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, создаСтся ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ массив Π½ΠΎΠ²ΠΎΠ³ΠΎ списка Π·Π°Π΄Π°Ρ‡, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ссли ΠΎΠ½ΠΈ Π½Π΅ измСнились. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ это Π½Π΅ Ρ‚Π°ΠΊ Π΄ΠΎΡ€ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° это становится Π΄ΠΎΡ€ΠΎΠ³ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, быстроС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ массива), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ‚Π°ΠΊΡƒΡŽ ​​как Immutable.js, которая ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстроС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ благодаря структурному Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ. Π‘ Immutable.js ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Ρ‚Π°ΠΊ Π΄ΠΎΡ€ΠΎΠ³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ большиС куски памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. НаконСц, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Immutable.js ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ эффСктивно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ измСнилось, благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ ΠΌΡƒΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ.

Ааа ... Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ послСдний Π±ΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ... Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ этим Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° измСнСния Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ состояниС измСнилось, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ рСагирования Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ / пСрСрисовку стал быстрСС? ΠŸΠΎΡ…ΠΎΠΆΠ΅ Π½Π° shouldComponentUpdate

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° измСнСния Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ измСнилось состояниС, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ рСагирования Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ / пСрСрисовку Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС? ΠŸΠΎΡ…ΠΎΠΆΠ΅ Π½Π° shouldComponentUpdate

Π’ΠΎΡ‡Π½ΠΎ, react-redux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ агрСссивный shouldComponentUpdate ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ благодаря Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ нСизмСнности.

@gaearon Извини, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° это становится Π΄ΠΎΡ€ΠΎΠ³ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, быстроС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ массива), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ‚Π°ΠΊΡƒΡŽ ​​как Immutable.js, которая ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстроС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ благодаря структурному Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ.

Π― ΠΈΡ‰Ρƒ использованиС redux для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ массива, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π΄ΠΎ 8000 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, ΠΈ оТидаю, Ρ‡Ρ‚ΠΎ пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π² Ρ€Π°ΠΉΠΎΠ½Π΅ 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° 100 мс. Π― Π²Π΅Π΄Ρƒ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ½ΡƒΡŽ Π±ΠΈΡ‚Π²Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ состояниСм Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ redux?
ΠœΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ состояниС Ρ‡Π΅Ρ€Π΅Π· холст, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· модСль DOM, Π½ΠΎ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ, ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ мнСнию, Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρƒ нас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с частотой ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

@dougajmcdonald : Мой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ вопрос: ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту Ρ€Π°Π±ΠΎΡ‚Ρƒ? Π’Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ пСрСрисовку ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса?

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я Π±Ρ‹ посовСтовал Π²Π°ΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° эти рСсурсы ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, связанной с Redux:

Π― Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» Π±Ρ‹ Ρ€Π°Π΄ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π² Ρ‡Π°Ρ‚Π°Ρ… Reactiflux .

@markerikson К соТалСнию, Π΄Π°, концСпция ΠΈΠ³Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя мноТСство быстрых ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большой структуры Π΄Π°Π½Π½Ρ‹Ρ….
Π― понимаю, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» Π½Π΅ совсСм ясСн Π² своСм ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° я Π³ΠΎΠ²ΠΎΡ€ΡŽ 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π΅ всС ΠΎΠ½ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ пСрСрисовку. 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ - это измСнСния состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ прСдставлСны ΠΎΠ΄Π½ΠΎΠΉ пСрСрисовкой Π·Π° 100 мс.
Π˜Ρ‚Π°ΠΊ, ΠΌΠΎΠΉ вопрос Π½Π° самом Π΄Π΅Π»Π΅: Ссли Π±Ρ‹ я Ρ€Π°Π·Π±ΠΈΠ²Π°Π» свои обновлСния Π½Π° 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ состояния Π½Π° 100 мс, смогло Π±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм Π² redux эффСктивно ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π»ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠΊΠ½Π° 100 мс для Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ пСрСрисовку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ отставали.
ОбновлСния состояния Π±ΡƒΠ΄ΡƒΡ‚ Π² основном Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ 3-4 свойств Π² массивС Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 8000, поэтому ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ массива 1-10 Ρ€Π°Π· Π² мс (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ) с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ измСнСниями Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² индСксС массива. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ довольно малСнькиС (3-4 свойства, ΠΏΠ°Ρ€Π° чисСл ΠΈ ΠΏΠ°Ρ€Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… строк)

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я задумался ΠΎ прСимущСствах использования нСизмСняСмого, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Дэн, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ массива, это, вСроятно, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

@dougajmcdonald : Π½Ρƒ, "ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм Π² Redux" Π½Π° самом Π΄Π΅Π»Π΅ являСтся СдинствСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ прСдоставили :)

Immutable.js - это Π½Π΅ волшСбная сСрСбряная пуля, ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ Π²Π΅Ρ‰ΠΈ быстрСС, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ - ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. Π£ мСня Π΅ΡΡ‚ΡŒ нСсколько статСй ΠΏΠΎ вопросам ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, связанным с Immutable.js, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ.

ЧСстно говоря, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ вашСго Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования Π²Ρ‹ _ тСорСтичСски ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ наказания с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прямой ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ, Ссли Π±Ρ‹ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ. Богласно ΠΌΠΎΠ΅ΠΌΡƒ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ Idiomatic Redux, Π§Π°ΡΡ‚ΡŒ 1 - РСализация ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ , само ядро ​​Redux Π½Π° самом Π΄Π΅Π»Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ заботится ΠΎ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ - это Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса React-Redux, Π° Ρ‚Π°ΠΊΠΆΠ΅ DevTools. ΠœΡƒΡ‚Π°Ρ†ΠΈΡ - это Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ _Π΄ΡƒΠΌΠ°Π»ΠΈ_ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Redux, Π½ΠΎ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Мой Π»ΠΈΡ‡Π½Ρ‹ΠΉ совСт - Π½Π°Ρ‡Π°Ρ‚ΡŒ с простого. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ простыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ массивы JS. НСизмСнно обновляйтС ΠΈΡ… Π»ΠΈΠ±ΠΎ Β«Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ», Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· мноТСства доступных

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния пакСтирования, сокращСния диспСтчСризации, Π»ΠΎΠ³ΠΈΠΊΠΈ обновлСния ΠΈ Ρ‚. Π”.

@markerikson - тонкая насмСшка Π² нос! : p Π”Π°, Π²Ρ‹ ΠΏΡ€Π°Π²Ρ‹, сторона Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π° Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ - это Π² основном созданиС ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ довольно большого массива, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, скорСС всСго, связана с Π±ΠΈΡ‚Π°ΠΌΠΈ ΠΈ Π±ΠΎΠ±Π°ΠΌΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° конСчная Ρ†Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ элСмСнт холста, идСально ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 60 ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду.
Бпасибо Π·Π° Ρ‚ΠΎΡ‡ΠΊΡƒ зрСния ΠΎ нСизмСняСмости ΠΈ Π·Π° Ρ‚ΠΎΡ‡ΠΊΡƒ зрСния ΠΎ прямой ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ, я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ ΠΈΡ… Ρ‚ΠΎΠΆΠ΅.
На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΉ ΠΌΡ‹ΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ состояниС redux ΠΎΡ‚ холста ΠΈ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ сообщСния Ρ‡Π΅Ρ€Π΅Π· pub / sub (ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π΅Π³ΠΎ) просто с большим количСством двиТущихся частСй

Π”ΡƒΠΌΠ°ΡŽ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ:
pubsub> dispatch ()> reducer> redux state> react component stuff> canvas render.

ΠšΠΎΠΌΡƒ:
pubsub> состояниС локального ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°> Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ холста

Π― ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ redux для ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ для холста Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π’Π°ΡˆΠΈ вопросы Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π²Π΅Ρ€Π½Ρ‹. На самом Π΄Π΅Π»Π΅ рСализация redux vuejs, называСмая vuex, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Β«Ρ€Π΅Π΄ΡŽΡΠ΅Ρ€Ρ‹Β» Π½Π° самом Π΄Π΅Π»Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ мутациями, ΠΈ ΠΏΠΎΠΊΠ° Π²Ρ‹ измСняСтС состояниС Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, всС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² порядкС. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ vue добавляСт Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ Π² состояниС прилоТСния, поэтому, ΠΊΠ°ΠΊ Π²Ρ‹ упомянули, Π² vue ΠΈΠΌΠ΅Π΅Ρ‚ большС смысла ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Redux нСизмСняСм, ΠΈ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° обновлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ DOM VS vue Π² основном ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° Π² Ρ‚ΠΎΠΌ мСстС, Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для всСх случаСв ΠΎΠ΄ΠΈΠ½ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ