آموزش رایگان Vue.js

آموزش Event Handling و v-on در Vue.js | مدیریت رویدادها با مثال کاربردی

22م آذر 1404 محراب حسن زاده
آموزش Event Handling و v-on در Vue.js | مدیریت رویدادها با مثال کاربردی

کار با رویدادها در Vue.js یکی از مهم‌ترین بخش‌های تعاملات کاربر با برنامه است. Vue.js برای مدیریت رویدادها از دستور v-on استفاده می‌کند که این دستور به شما اجازه می‌دهد به رویدادهای مختلفی مانند کلیک، تغییر، فشردن کلید و موارد دیگر پاسخ دهید. در این مقاله، به بررسی نحوه استفاده از v-on و انواع مختلفی از کار با رویدادها در Vue.js می‌پردازیم.


استفاده از v-on برای رویدادها

برای افزودن یک رویداد به یک عنصر HTML در Vue.js، از دستور v-on استفاده می‌شود. v-on به عنوان دستورالعمل (Directive) عمل می‌کند و به Vue.js اجازه می‌دهد تا رویدادهای مختلف را شنود کند و واکنش‌های مورد نظر را اعمال کند.

مثال: رویداد کلیک ساده




< div id="app" >
  < button v-on:click=" showMessage " > Click Me < / button >
< / div >




  new Vue ( {
    el : ' #app ' ,
    data ( ) {
      return {
        message : ' Hello Vue! '
      } ;
    } ,
    methods : {
      showMessage ( ) {
        alert ( this.message ) ;
      }
    }
  } ) ;


در این مثال:

  • با کلیک بر روی دکمه، متد showMessage اجرا می‌شود که پیام ذخیره شده در data را نمایش می‌دهد.

  • v-on:click رویداد کلیک را به متد showMessage متصل می‌کند.


مخفف v-on به @

در Vue.js می‌توان از علامت @ به جای v-on استفاده کرد تا کد کوتاه‌تر و خواناتر شود.

همان مثال قبل با استفاده از @:




< button @click=" showMessage " > Click Me < / button >


این روش مخفف به کار شما سرعت و سادگی بیشتری می‌بخشد و در کدهای Vue.js به‌طور گسترده‌ای استفاده می‌شود.


ارسال پارامتر به متدها

گاهی نیاز دارید پارامترهایی را به متدهای خود ارسال کنید. برای این کار می‌توانید از تابع arrow function استفاده کنید.

مثال: ارسال پارامتر به متد



< div id=" app " >
  < button @click=" showMessage ( ' Hello! ' ) " > Click Me < / button >
< / div >




  new Vue ( {
    el : ' #app ' ,
    methods : {
      showMessage ( msg ) {
        alert ( msg ) ;
      }
    }
  } ) ;


در این مثال، مقدار 'Hello!' به عنوان پارامتر به متد showMessage ارسال می‌شود.


رویدادهای پیش‌فرض مرورگر و اصلاح‌کننده‌ها (Modifiers)

Vue.js از اصلاح‌کننده‌ها برای جلوگیری از رفتارهای پیش‌فرض و اصلاح عملکرد رویدادها پشتیبانی می‌کند. برای مثال، برای جلوگیری از ارسال فرم با submit می‌توان از .prevent استفاده کرد.

مثال: جلوگیری از ارسال فرم




< form @submit.prevent= " handleSubmit " >
  < input type="text" v-model="name" >
  < button type="submit" > Submit < / button >
< / form >




  new Vue ( {
    el : ' #app ' ,
    data ( ) {
      return {
        name : ' '
      } ;
    } ,
    methods : {
      handleSubmit ( ) {
        alert ( ' Form submitted! ' ) ;
      }
    }
  } ) ;


در این مثال، .prevent از ارسال فرم به صورت پیش‌فرض جلوگیری می‌کند.


اصلاح‌کننده‌های رایج در Vue.js


اصلاح‌کننده توضیح

.prevent

جلوگیری از رفتار پیش‌فرض رویداد، مثل ارسال فرم

.stop

توقف انتشار رویداد به عناصر والد

.capture

فعال‌سازی capture mode برای رویداد

.self

اجرا فقط در صورتی که رویداد روی همان عنصر رخ دهد

.once

اجرای رویداد فقط یک بار


مثال: استفاده از .stop




< div id = " app " @click = " parentClick " >
  < button @click.stop = " childClick " > Click Me < / button >
< / div >




  new Vue ( {
    el : ' #app ' ,
    methods : {
      parentClick ( ) {
        alert ( ' Parent clicked! ' ) ;
      } ,
      childClick ( ) {
        alert ( ' Button clicked! ' ) ;
      }
    }
  } ) ;


در این مثال، با کلیک بر روی دکمه، تنها childClick اجرا می‌شود و رویداد به parentClick نمی‌رسد.


مدیریت رویدادهای کیبورد

Vue.js به شما اجازه می‌دهد رویدادهای کیبورد را با کمک v-on و اصلاح‌کننده‌های خاصی مانند .enter، .esc و سایر کلیدها مدیریت کنید.

مثال: استفاده از کلید Enter




< input @keyup.enter = " submitInput " v-model = " inputValue " >




  new Vue ( {
    el : ' #app ' ,
    data ( ) {
      return {
        inputValue : ' '
      } ;
    } ,
    methods : {
      submitInput ( ) {
        alert ( ` Input Submitted: ${this.inputValue} ` ) ;
      }
    }
  } ) ;


در این مثال، زمانی که کاربر کلید Enter را فشار می‌دهد، متد submitInput اجرا می‌شود.


استفاده از Event Modifiers به عنوان شرط در رویدادها

Vue.js به شما اجازه می‌دهد از چندین اصلاح‌کننده در یک رویداد استفاده کنید. به این صورت می‌توانید به رویدادها شرایطی اضافه کنید تا تنها در موارد خاص اجرا شوند.

مثال: استفاده از چندین اصلاح‌کننده در یک رویداد




< button @click.ctrl.shift = " specialAction " > Special Action < / button >




  new Vue ( {
    el : ' #app ' ,
    methods : {
      specialAction ( ) {
        alert ( ' Ctrl + Shift + Click triggered! ' ) ;
      }
    }
  } ) ;


در این مثال، متد specialAction فقط زمانی اجرا می‌شود که کاربر همزمان با فشار دادن کلیدهای Ctrl و Shift، دکمه را کلیک کند.


نتیجه‌گیری

استفاده از v-on و مدیریت رویدادها در Vue.js به شما کمک می‌کند تعاملات متنوع و انعطاف‌پذیری را با کاربران پیاده‌سازی کنید. v-on همراه با اصلاح‌کننده‌ها و شرایط مختلف، امکان کنترل دقیق رویدادها و عملکردهای مورد نظر را فراهم می‌آورد.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا
16م آبان 1403

آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا

مطالعه بیشتر
آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق
12م آبان 1403

آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
28م مهر 1403

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها

مطالعه بیشتر
آموزش جامع حلقه‌های for و while در جاوا اسکریپت: نحوه استفاده و کاربردها
2م بهمن 1402

آموزش جامع حلقه‌های for و while در جاوا اسکریپت: نحوه استفاده و کاربردها

مطالعه بیشتر
آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای
18م شهریور 1402

آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

مطالعه بیشتر
آموزش اضافه کردن ویدئو و صدا به وب‌سایت: نحوه استفاده از تگ‌های video و audio در HTML
23م مرداد 1402

آموزش اضافه کردن ویدئو و صدا به وب‌سایت: نحوه استفاده از تگ‌های video و audio در HTML

مطالعه بیشتر
مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی
4م آبان 1403

مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی

مطالعه بیشتر
مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها
29م مهر 1403

مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها

مطالعه بیشتر
آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها
1م آبان 1403

آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها

مطالعه بیشتر
مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا
28م شهریور 1402

مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا

مطالعه بیشتر
واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنش‌گرا
11م آبان 1403

واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنش‌گرا

مطالعه بیشتر
آموزش تکنیک‌های پیشرفته CSS Grid: طراحی ساختارهای پیچیده و واکنش‌گرا
18م شهریور 1402

آموزش تکنیک‌های پیشرفته CSS Grid: طراحی ساختارهای پیچیده و واکنش‌گرا

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد