Remix 3 بتا: فریمورک فولاستک جدید
خلاصهٔ کاملتر
تیم Remix بعد از مدتی سکوت، نسخه بتای Remix 3 رو بهصورت پیشنمایش منتشر کرد. این نسخه هنوز بهدرد پروداکشن نمیخوره، ولی برای کنجکاوها، آزمایشها، دموها و پروتوتایپها آمادهست.
نسخههای قبلی Remix (و React Router) «center stack» بودن — یعنی فقط لایه روتینگ و رندرینگ رو میپوشوندن و بقیه کارها رو به خودت واگذار میکردن. Remix 3 یه رویکرد کاملاً متفاوت داره: ایده اینه که چی میشه اگه فریمورک کل استک رو پوشش بده؟ نه فقط روتینگ، نه فقط رندرینگ — بلکه روتها، ریکوئست هندلرها، رسپانسها، میدلور، سشنها، احراز هویت، فرمها، آپلودها، اسستها، مدیریت داده و دیتابیس، کامپوننتهای UI، تمبندی، شبکهبندی و تست — همه زیر یه چتر.
البته این به معنی یه مونولیت غولآسا نیست. Remix 3 از پکیجهای کوچک و ترکیبپذیر ساخته شده که هر کدوم میتونن مستقل هم کار کنن. هدف اینه که وقتی داری اپ میسازی، وقتت رو صرف چسبزدن دهها وابستگی ناهمخوان به هم نکنی.
یه ویژگی جالب Remix 3 چیزیه که بهش «Frames» میگن. یه Frame در واقع یه UI سرور-رندرشده با یه src هست. کلاینت میتونه اون رو بارگذاری، ناوبری یا ریلود کنه، در حالی که سرور HTML رندر میکنه. این یه نوع ارتباط سرور/کلاینته که کاملاً حس وبی داره: URL، ریکوئست، رسپانس و مارکآپ — بدون یه لایه RPC جداگانه.
کامپوننتهای Remix هم از همین الگو پیروی میکنن: متغیرهای جاوااسکریپت ساده برای استیت، آپدیتهای صریح، کارهای async که قابل abort هستن، و رفتارهای قابل استفاده مجدد با mixinها. کد کامپوننتها به سبک procedural نوشته میشه — اول این، بعد اون. مثلاً یه کامپوننت CopyToClipboard ساده اینطوری به نظر میرسه:
function CopyToClipboard(handle: Handle<{ url: string }>) {
let state: "idle" | "copied" | "error" = "idle";
return () => {
let label =
state === "idle" ? "Copy to clipboard" :
state === "copied" ? "Copied" : "Error";
return ( /* ... */ );
};
}یه نکته مهم دیگه رویکرد «Unbundling» هست. Remix 3 به جای اینکه بندلر رو محور همه چیز بذاره، رانتایم رو بهعنوان منبع حقیقت در نظر میگیره. اسستها توسط Remix کامپایل و سرو میشن، ولی مدل اپ به یه مرحله آنالیز بزرگ قبل از رانتایم وابسته نیست. هیچ معناشناسی خاصی دور importها نمیچرخه — نه برای توسعهدهندهها، نه برای ایجنتهای هوش مصنوعی.
در واقع تیم Remix به این فکر کرده که هوش مصنوعی با فریمورکهایی بهتر کار میکنه که شکل واضحی دارن: روتها یه جا، کنترلرهایی که رسپانس برمیگردونن، میدلورهایی که چرخه حیات ریکوئست رو مدیریت میکنن، فرمهایی که به URL ارسال میکنن. این مفاهیم ماندگارن و برای ایجنتها بلوکهای محکمی هستن.
برای شروع با بتا:
npx remix@next new my-remix-appنکات کلیدی:
- Remix 3 از «center stack» به فولاستک واقعی تبدیل شده — روتینگ، سشن، احراز هویت، UI، تست و مدیریت داده همه یکجا
- پکیجهای کوچک و ترکیبپذیر به جای مونولیت
- Frames: UI سرور-رندرشده با src که میشه مستقل بارگذاری و ریلود کرد
- رویکرد Unbundling: رانتایم منبع حقیقته، نه بندلر
- طراحی شده تا برای ایجنتهای هوش مصنوعی هم قابل فهم و پیشبینی باشه
- هنوز پروداکشنردی نیست؛ مناسب آزمایش، دمو و فیدبک




