React Native Runtimes: اجرای اپ روی چند رانتایم جاوااسکریپت
خلاصهٔ کاملتر
React Native Runtimes یه کتابخونهٔ تازهست که اجازه میده کامپوننتها، توابع و state رو روی چند رانتایم جاوااسکریپتِ نامگذاریشده اجرا کنی، تا رشتهٔ اصلی UI هیچوقت با کارهایی مثل لیستهای بزرگ، چت، همگامسازی یا رمزنگاری قفل نشه.
این پروژه از دو پکیج تشکیل شده: @react-native-runtimes/core برای ترکیب رانتایمها و @react-native-runtimes/state برای state مشترکِ پشتیبانیشده با نیتیو. به گفتهٔ سازندهها، state مشترک یه API شبیه Zustand روی یه singleton زبان C++ـه، طوری که همهٔ رانتایمها یه مقدار و یه نسخهٔ یکسان میبینن.
ایدهٔ اصلیِ «رندر رشتهای» اینه که میتونی یه کامپوننت یا کل یه صفحه رو روی یه رانتایم ثانویه سوار کنی تا رشتهٔ اصلی برای ناوبری و ورودی کاربر آزاد بمونه. کافیه کامپوننت رو با OnRuntime بپیچی؛ Metro خودش ثبتش میکنه و نیتیو روی رانتایم نامبرده سوارش میکنه:
import { OnRuntime } from '@react-native-runtimes/core';
export function ConversationPreview() {
return (
<OnRuntime name="messages-runtime">
<MessageList conversationId="release-room" />
</OnRuntime>
);
}از قابلیتهای دیگهش میشه به گرمکردن از قبلِ رانتایمها (prewarming) و taskهای headless اشاره کرد، که باعث میشه رانتایم با تأخیر صفر باز بشه. همچنین میشه منطق کاری رو با یه دستور یکخطی به یه رانتایم «پسزمینه» سنجاق کرد، یا لیستهای بزرگ مثل FlashList رو روی یه رانتایم کارگر اجرا کرد.
نکتهٔ خوب اینه که پذیرشش تدریجیه: میتونی فقط یه کامپوننت یا یه صفحه رو واردش کنی و بقیهٔ اپ دقیقاً مثل قبل کار میکنه. این کتابخونه با همکاری تیم Margelo و دوستانشون تو Callstack ساخته شده و برای اپهای واقعیِ React Native در محیط تولید در نظر گرفته شده.
نکات کلیدی:
- اجرای کامپوننتها و توابع روی چند رانتایم جاوااسکریپتِ جدا
- رشتهٔ اصلی UI با کارهای سنگین قفل نمیشه
- state مشترکِ نیتیو روی یه singleton زبان C++
- پذیرش تدریجی: یه کامپوننت یا صفحه رو وارد کن




