⏩
'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



