پل بصری-به-کد
تبدیل مستقیم از تعامل بصری به تغییرات دقیق کد.
نمای کلی
پل بصری-به-کد ویژگی اصلی Hatcher است که به توسعهدهندگان اجازه میدهد با اپلیکیشنهایشان به صورت بصری تعامل کنند در حالی که تغییرات دقیق و قطعی کد تولید میکند.
نحوه کارکرد
1. حالت بازرسی بصری
حالت بازرسی را برای شروع انتخاب عناصر در اپلیکیشن خود فعال کنید:
bash
# شروع سرور توسعه با بازرسی بصری
hatcher dev --visual-inspect
2. انتخاب عناصر
- Hover: عناصر را برای دیدن اطلاعات ساختار هایلایت کنید
- Click: عنصری را برای تغییر انتخاب کنید
- Multi-select: از Cmd/Ctrl + کلیک برای انتخاب چندین عنصر استفاده کنید
3. زمینه خودکار
وقتی عنصری را انتخاب میکنید، Hatcher به طور خودکار:
- کامپوننتها و فایلهای مرتبط را شناسایی میکند
- ساختار سلسلهمراتبی را آنالیز میکند
- Playbookهای مرتبط را بارگیری میکند
- زمینه را برای AI آماده میکند
انواع تغییرات
استایلدهی و چیدمان
typescript
// قبل: عنصر به صورت بصری انتخاب شده
<div className="container">
<h1>عنوان</h1>
</div>
// دستور: "عنوان را آبی و وسطچین کن"
// بعد: کد به طور خودکار تغییر یافته
<div className="container">
<h1 className="text-blue-600 text-center">عنوان</h1>
</div>
ساختار کامپوننت
typescript
// قبل: کامپوننت ساده
function Header() {
return <h1>خوش آمدید</h1>
}
// دستور: "ناوبری با منوی خانه و درباره اضافه کن"
// بعد: ساختار گسترش یافته
function Header() {
return (
<header>
<h1>خوش آمدید</h1>
<nav>
<a href="/">خانه</a>
<a href="/about">درباره</a>
</nav>
</header>
)
}
منطق کسبوکار
typescript
// قبل: کامپوننت استاتیک
function Counter() {
return <div>0</div>
}
// دستور: "این را به شمارندهای تبدیل کن که با کلیک افزایش یابد"
// بعد: منطق اضافه شده
function Counter() {
const [count, setCount] = useState(0)
return (
<div onClick={() => setCount(count + 1)}>
{count}
</div>
)
}
نقشهبرداری بصری-به-کد
شناسایی کامپوننت
Hatcher از چندین استراتژی برای نقشهبرداری عناصر بصری به کد استفاده میکند:
- React DevTools Integration: استفاده از ابزارهای توسعه React
- Source Maps: نقشهبرداری از عناصر DOM به کد منبع
- AST Analysis: آنالیز درخت نحو انتزاعی برای درک ساختار
- Convention Detection: تشخیص خودکار الگوها و کنوانسیونهای پروژه
حل سلسلهمراتب
typescript
// ساختار عنصر انتخاب شده
App
└── Layout
└── Content
└── ProductCard // ← عنصر انتخاب شده
├── Image
├── Title
└── Price
وقتی ProductCard
انتخاب میشود، Hatcher درک میکند:
- کامپوننت والد (
Content
) - کامپوننتهای فرزند (
Image
,Title
,Price
) - Props و state موجود
- استایلهای اعمال شده
پیکربندی
تنظیمات فریمورک
json
// hatcher.config.json
{
"visualBridge": {
"framework": "react",
"bundler": "vite",
"sourceMapEnabled": true,
"devtoolsIntegration": true
}
}
نقشهبرداری انتخابگرها
json
{
"selectorMapping": {
"components": {
"[data-component]": "component",
".card": "ui-element",
"#main": "layout"
}
}
}
حالت دیباگ
بازرسی عمیق
bash
# حالت دیباگ با اطلاعات تفصیلی
hatcher dev --visual-inspect --debug
در حالت دیباگ، میتوانید ببینید:
- نقشهبرداری عنصر-به-فایل در زمان واقعی
- نودهای AST شناسایی شده
- زمینه ارسال شده به AI
- پیشبینی تغییرات قبل از اعمال
اطلاعات همپوشان
حالت دیباگ اطلاعات همپوشان نمایش میدهد:
- مسیر فایل کامپوننت
- Props موجود
- State فعلی
- Playbook فعال
بهترین شیوهها
1. استفاده از Data Attributes
typescript
// کمک به شناسایی کامپوننت
<div data-component="ProductCard" data-id={product.id}>
<img src={product.image} data-element="product-image" />
<h3 data-element="product-title">{product.title}</h3>
</div>
2. ساختار کامپوننت واضح
typescript
// ساختار قابل شناسایی آسان
function ProductCard({ product }: Props) {
return (
<article className="product-card">
<ProductImage src={product.image} />
<ProductInfo title={product.title} price={product.price} />
</article>
)
}
3. ثبات در نامگذاری
typescript
// الگوی نامگذاری ثابت
const ProductCard = () => {}
const ProductImage = () => {}
const ProductInfo = () => {}
عیبیابی
عنصر تشخیص داده نمیشود
bash
# بررسی پیکربندی فریمورک
hatcher doctor --visual-bridge
# تأیید source maps
hatcher dev --debug-source-maps
تغییرات نادرست
- Playbook را برای زمینه مشخصتر بررسی کنید
- از انتخابگرهای data attribute صریحتر استفاده کنید
- تأیید کنید که ساختار کامپوننت مطابق کنوانسیون است
مسائل عملکرد
json
// بهینهسازی برای پروژههای بزرگ
{
"visualBridge": {
"throttleInspection": true,
"cacheComponentMap": true,
"limitScanDepth": 5
}
}
پل بصری-به-کد شهود بصری را به پیادهسازی دقیق کد متصل میکند و توسعه UI را طبیعیتر و کارآمدتر میسازد.