سیستم Two-Way Binding در Vue با v-model
سیستم Two-way binding در Vue یکی از چالشبرانگیزترین بخشهای توسعهی اپلیکیشنهای وب، یعنی همگامسازی ورودی کاربر (User Input Synchronization) را بسیار ساده میکند. این کار با استفاده از دستور v-model انجام میشود.
دستور v-model:
-
هر زمان مدل داده (data model) تغییر کند، Template را بهروزرسانی میکند
-
و هر زمان Template تغییر کند، دادهها را آپدیت میکند
Two-way binding یک قابلیت قدرتمند است که اگر درست استفاده شود، میتواند سرعت توسعهی شما را بهطور قابلتوجهی افزایش دهد و پیچیدگی هماهنگ نگه داشتن دادهها و ورودی کاربر را کاهش دهد.
در Vue، این قابلیت با استفاده از دستور v-model پیادهسازی میشود.
اتصال v-model به ورودیهای متنی (Text Input)
برای اتصال مقدار یک input به یکی از propertyهای دادهی کامپوننت، کافی است از v-model="dataProperty" استفاده کنید.
متد data در کامپوننت:
Template:
نتیجه:
-
مقدار input در ابتدا برابر است با
Am I truly an alligator? -
با تغییر مقدار input، مقدار
existentialQuestionو محتوای<h2>بهصورت real-time تغییر میکند
اتصال v-model به Checkbox و Radio Button
Checkbox و Radio Button تقریباً مانند inputهای متنی کار میکنند، با این تفاوتها:
-
Checkbox تکی → مقدار
trueیاfalse -
Radio Button → مقدار مشخصشده در attribute
value -
چند Checkbox → میتوانند به یک آرایه متصل شوند
مثال Checkbox تکی (Single Checkbox)
دادههای کامپوننت:
Template:
با تغییر وضعیت checkbox، مقدار statementIsTrue فوراً بهروزرسانی میشود.
مثال چند Checkbox (Multiple Checkboxes)
دادههای کامپوننت:
Template:
هر checkbox که تیک بخورد، مقدار value آن به آرایه اضافه میشود.
مثال Radio Button
دادههای کامپوننت:
Template:
مقدار متغیر howAreYouFeeling برابر با مقدار value گزینهی انتخابشده خواهد بود.
نکات مهم درباره v-model
1️⃣ v-model.lazy
بهصورت پیشفرض، v-model با هر رویداد input (مثل تایپ یا paste) اجرا میشود.
اگر بخواهید فقط پس از خارج شدن فوکوس از input اجرا شود، از modifier زیر استفاده کنید:
2️⃣ v-model.number
برای تبدیل ورودی کاربر از string به number:
تبدیل به انواع دیگر باید بهصورت دستی انجام شود.
3️⃣ v-model.trim
برای حذف فاصلههای ابتدا و انتهای رشته:
این modifier را نمیتوان همراه با v-model.number استفاده کرد.
4️⃣ پشتصحنه v-model
عبارت زیر:
در واقع معادل است با:
به همین دلیل، میتوانید v-model را برای کامپوننتهای سفارشی خودتان هم پیادهسازی کنید.
جمعبندی (Conclusion)
دستور v-model یکی از مهمترین و کاربردیترین قابلیتهای Vue است که:
-
پیادهسازی Two-way binding را بسیار ساده میکند
-
کد را تمیزتر و خواناتر میسازد
-
سرعت توسعه را بهشکل محسوسی افزایش میدهد
اگر با فرمها و ورودی کاربر در Vue کار میکنید، تسلط بر v-model ضروری است.
از همراهی شما با پارمین کلود متشکریم.
نظرات کاربران