πŸ–₯ Π₯ΡƒΠΊ дня β€” 'use client'



⏩'use client' позволяСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ выполняСтся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ 'use client' Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ Π΅Π³ΠΎ Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ зависимости ΠΊΠ°ΠΊ клиСнтский ΠΊΠΎΠ΄.



⏩Когда Ρ„Π°ΠΉΠ», ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ 'use client', импортируСтся ΠΈΠ· сСрвСрного ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, совмСстимыС Π±Π°Π½Π΄Π»Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ модуля ΠΊΠ°ΠΊ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ΄ΠΎΠΌ, выполняСмым Π½Π° сСрвСрС, ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ, выполняСмым Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.



⏩Будучи зависимостями RichTextEditor, formatDate ΠΈ Button Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, содСрТат Π»ΠΈ ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ 'use client'. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° сСрвСрС ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈΠ· сСрвСрного ΠΊΠΎΠ΄Π° ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈΠ· клиСнтского ΠΊΠΎΠ΄Π°.





НСкоторыС Π½ΡŽΠ°Π½ΡΡ‹



⏩'use client' Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² самом Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ΡˆΠ΅ любого ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ). Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ написаны с ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, Π½ΠΎ Π½Π΅ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ.



⏩Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'use client' импортируСтся ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ клиСнтского модуля, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ силы.



⏩Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° содСрТит Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ 'use client', Ρ‚ΠΎ любоС использованиС этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ являСтся клиСнтским ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ. Однако ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ†Π΅Π½Π΅Π½ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ Π½Π΅ содСрТит Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ 'use client'.

Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ считаСтся клиСнтским, Ссли ΠΎΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ 'use client' ΠΈΠ»ΠΈ являСтся Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ модуля, содСрТащСго Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ 'use client'. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ являСтся сСрвСрным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ.



⏩Код, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ для использования ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Π½Π΅ ограничиваСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄, входящий Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Client, отправляСтся ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ выполняСтся ΠΈΠΌ.



⏩Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с сСрвСром, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ значСния ΠΈΠ· модуля 'use client', эти значСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ React, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ сСриализуСмыми значСниями prop для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² клиСнтский ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. ΠŸΡ€ΠΈ любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ использования Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.



πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅



@react_tg