Skip to content

بایندینگ‌های فریم‌ورک

دوران چهار بایندینگِ فریم‌ورک دارد که همه روی همان موتورِ مشترک — custom elementهای @doranjs/wc — سوارند. منطقِ تقویم/گرید یک بار نوشته شده و per-framework بازنویسی نمی‌شود؛ هر بایندینگ فقط قرارداد اصطلاحیِ همان فریم‌ورک را روی آن می‌گذارد. قرارداد تغییر همه‌جا یکسان است: مقدار یک DoranDate است و رویدادِ change علاوه بر آن Dateِ میلادی را برای backend گزارش می‌کند.

مقایسهٔ کنار هم

ReactVueSvelteAngular
نصب@doranjs/react@doranjs/vue@doranjs/svelte@doranjs/angular
اتصالِ مقدارvalue/onChangev-modelbind:value[formControl] (CVA)
نوعِ مقدارDoranDateDoranDateDoranDateDoranDate
میلادی ازآرگومان دومِ onChangepayloadِ changechange detailpayloadِ (change)
گریدِ headlessuseCalendaruseCalendarGridcreateCalendarGridcreateCalendarGrid (signals)
ProviderDoranProviderDoranProviderDoranProviderdr-provider / DORAN_DEFAULTS
مکانیزمِ providercontextprovide/injectcontextDI

هر چهار بایندینگ همان مجموعه کامپوننت را نمایش می‌دهند: DoranDatePicker، DoranCalendar، DoranRangePicker، DoranNlpInput و DoranAgenda. هر attribute‌ای که عنصرِ زیرین پشتیبانی می‌کند (locale، format، with-time، min، max، …) مستقیماً pass می‌شود — فهرست کامل در @doranjs/wc.

اعتبارسنجی و فرم‌ها

برای اعتبارسنجیِ framework-agnostic، @doranjs/zod یک schemaِ zDoranDate() می‌دهد که از رشتهٔ ISO، Date، epoch یا DoranDate به DoranDate coerce می‌کند و از طریقِ resolverِ zodِ هر stack (react-hook-form، VeeValidate، superforms و …) داخلِ فرم‌ها می‌افتد.

SSR

@doranjs/wc نسبت به SSR گارد شده، پس رندرِ سرور تگِ inert را emit می‌کند و hydration آن را upgrade می‌کند. برای قطعیتِ ارقام/تایم‌زون بین دو pass، برنامه را در DoranProvider بپیچید. جزئیات در راهنمای SSR.

Released under the MIT License.