ΠΠ°ΠΊ Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π½Π°Π΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ΡΡ Π½Π° Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ Π² JavaScript, Π²Π°ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ.
Π£ΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π·Π°Π½ΡΡΠ° Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π° Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΠ‘.
Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°Ρ
Angular Π²Ρ ΠΎΡΠΊΠ°ΠΆΠ΅ΡΠ΅ΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π² Π»ΠΎΠ²ΡΡΠΊΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ngOnDestroy
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°ΠΌΠΈ:
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ngOnDestroy
ΠΈ ΠΎΡΠΏΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ.
Π₯ΠΎΡΠΎΡΠΎ, Π½ΠΎ Ρ Ρ
ΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ. Π§ΡΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ decorator
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π·Π° Π½Π°Ρ? ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ AutoUnsubscribe
, ΡΡΠΎΠ±Ρ ΠΎΡΠΈΡΡΠΈΡΡ Π½Π°Ρ ΠΊΠΎΠ΄.
Π typescript
ΠΈΠ»ΠΈ babel
Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, constructor
Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ constructor
ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°.
π€ ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΡΡΠΈ ΠΏΡΠΎΡΡΡΡ ΡΠ°Π³Π°:
- Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
ngOnDestroy
. - Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½Π°ΡΡ Π²Π΅ΡΡΠΈΡ
ngOnDestroy
, ΠΏΠ΅ΡΠ΅Π±Π΅ΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°class
ΠΈ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡunsubscribe()
, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. - ΠΡΠ·Π²Π°ΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
ngOnDestroy
, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΠΎΡ ΠΈ Π²ΡΠ΅, ΠΊΡΡΠΎΠΊ.
π ΠΠΎβ¦
ΠΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅, Π° ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π±Π΅Π·ΡΠΌΠ½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ? Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ $two
, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π°ΡΠ΅ΠΌΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ (ΠΌΠ°ΡΡΠΈΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²), ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Decorator Factory:
Π€Π°Π±ΡΠΈΠΊΠ° Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΈΠΌΡ property
ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ blacklist
ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ unsubscribe()
.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΡΠ°ΠΊ:
π ΠΠΎΡΠΎΠ²ΠΎ!
ΠΠ°ΠΉΡΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠ΅ΡΠ΅Π½ΠΎΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΌ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ takeUntil
, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠΎΠΉ ΠΊΡΠΎΡΠ΅ΡΠ½ΡΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°ΡΡ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ° ΡΡΠ°ΡΡΡ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ - Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΎΡΠΈΡΡΠΈΡΠ΅Π»Ρ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Ρ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ. ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠ²ΠΈΡΠ΅ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈ Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ Π·Π΄Π΅ΡΡ.
ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ Π½Π° ΠΌΠ΅Π½Ρ Π² Medium ΠΈΠ»ΠΈ Twitter, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± Angular, Vue ΠΈ JS!