قالب ها در Next.js – جامعه dev

در Next.js
layout.tsx
مشترک است UI
جزء بین routes
بشر layout.tsx
هرگز rerenders
وقتی از یکی حرکت می کنیم route
به دیگری ما استفاده می کنیم layout
برای ارائه عناصر استاتیک که قرار نیست تغییر کنند. مثل ، Header
با Footer
، و غیره. این به معنای ، layout
مؤلفه/صفحات خود را نگه می دارد یا UI
به همان روش و ارائه می دهد page.tsx
در آن به عنوان children
، اگر می خواهید.
تفاوت بین layout
وت template
درست مثل layout
template
همچنین می پیچد pages
وت components
به عنوان children
بشر اما تفاوت اصلی بین layout
وت template
است ، layout
می تواند وضعیت فعلی را حفظ کند ، اما template
نمی تواند. به همین دلیل layout
تغییر نمی کند UI
یا دستکاری نمی کند DOM
بشر از طرف دیگر ، template
نگه نمی دارد state value
بشر این تغییر می کند state
مجدداً UI
، و دستکاری DOM
بشر
ایجاد a template
بسیار ساده است
- یک پرونده به نام ایجاد کنید
template.tsx/jsx/js..
در فهرست مورد نظر خود - در
template
، بازگشتReact component
اجباری است - همانطور که انجام می دهید انجام دهید
layout.tsx
import SignUp from './signup';
export default function MyTemplate({ children }: { children: React.ReactNode }) {
return (
{children}
);
}
به طور خلاصه ، استفاده نکنید template
برای دارایی های استاتیک. از آن برای کجا استفاده کنید state
نیاز به تغییر و تغییر مجدد مؤلفه دارد.
'use client'
بعضی اوقات ممکن است شما نیاز به استفاده داشته باشید 'use client'
بشر
- وقتی از هر استفاده می کنید
React
hook
یاstate
(useState
، استفاده) در خودtemplate
- متصل کردن
event handlers
یا به مرورگر متکی استAPIs
(window
باdocument
) - سایر مؤلفه های مشتری را وارد می کند (به عنوان مثال ، الف
carousel
باchart
، یاprovider
) - یک بار
"use client"
موجود است ، همه واردات به بخشی از بسته نرم افزاری مشتری تبدیل می شوند.