فرمیش: کتابخانه فرم برای همه فریمورکها
خلاصهٔ کاملتر
فرمیش (Formisch) یه کتابخانه مدرن و headless برای مدیریت فرمهای جاوااسکریپته که بر پایه schema کار میکنه. هدفش اینه که مدیریت state فرم و اعتبارسنجی رو برای توسعهدهندهها ساده و راحت کنه، بدون اینکه سربار سنگینی به پروژه اضافه بشه.
یکی از مهمترین ویژگیهاش سایز کوچیکشه؛ باندل از ۲.۵ کیلوبایت شروع میشه و طراحی ماژولار داره، یعنی فقط چیزی که نیاز داری رو باهات میاد. اعتبارسنجی هم مبتنی بر Valibot ِه که یه کتابخانه schema-based سبک و قدرتمنده.
فرمیش با شش فریمورک محبوب کار میکنه: React، Vue، SolidJS، Svelte، Qwik و Preact. اما چیزی که اون رو از بقیه جدا میکنه اینه که هستهاش کاملاً framework-agnostic ِه و در زمان بیلد، بلوکهای reactivity مخصوص هر فریمورک رو تزریق میکنه. نتیجهاش یه باندل کوچیک و پرفورمنس native برای هر فریمورکه.
آپدیتهای DOM به صورت fine-grained انجام میشن یعنی فقط همون المانی که تغییر کرده رندر مجدد میشه، نه کل فرم. این یعنی سرعت بالا حتی در فرمهای پیچیده.
API فرمیش مینیمال و خوانا طراحی شده. مثلاً در SolidJS با createForm فرم رو initialize میکنی، schema رو از Valibot بهش میدی و تایپها به صورت خودکار infer میشن:
import { createForm, Field, Form } from '@formisch/solid';
import * as v from 'valibot';
const LoginSchema = v.object({
email: v.pipe(v.string(), v.email()),
password: v.pipe(v.string(), v.minLength(8)),
});
export default function LoginPage() {
const loginForm = createForm({ schema: LoginSchema });
return ( /* ... */ );
}بعد از اینکه فرم رو ساختی، میتونی با متدهایی مثل getErrors، setInput، reset، submit، validate و چند تای دیگه، state فرم رو به صورت برنامهنویسانه کنترل کنی. این متدها کار با فرمهای پیچیده و داینامیک رو خیلی راحتتر میکنن.
سازنده فرمیش میگه ویژیونش اینه که فرمیش بشه یه پلتفرم framework-agnostic برای فرمها، مثل همون کاری که Vite برای بیلد ابزارها انجام داد. پروژه هم MIT ِه و کاملاً رایگانه.
نکات کلیدی:
- باندل سبک از ۲.۵ کیلوبایت، با طراحی ماژولار
- اعتبارسنجی schema-based با Valibot
- پشتیبانی از React، Vue، SolidJS، Svelte، Qwik و Preact
- هسته framework-agnostic با reactivity native هر فریمورک
- آپدیت fine-grained DOM برای پرفورمنس بالا
- API مینیمال با متدهای کنترلی کامل (reset، validate، setErrors و...)
- تایپسیف با autocompletion ویرایشگر
- مجوز MIT و کاملاً رایگان




