Məzmuna keçin
  • Kateqoriyalar
  • Ən yeni
  • Teqlər
  • Populyar
Yığmaq
Brend loqosu
  1. Əsas səhifə
  2. Front-end
  3. Vue.js
  4. Vue-də dinamik hadisə adları

Vue-də dinamik hadisə adları

Planlaşdırılıb Sabitlənib Kilidlənib Köçürülüb Vue.js
vuemodelevents
1 Yazı 1 Yazarlar 82 Baxış
  • Ən köhnədən yeniyə
  • Ən yenidən köhnəyə
  • Ən çox səs
Cavab ver
  • Mövzu olaraq cavablandır
🔑 Daxil ol
Bu mövzu silindi. Yalnız mövzu idarəçiliyi imtiyazlarına malik olan istifadəçilər onu görə bilər.
  • codexC Onlayn
    codexC Onlayn
    codex
    üzərində yazmışdı sonuncu dəfə tərəfindən redaktə edilib
    #1

    💡 Vue-da dinamik hadisə adlarından istifadə edə biləcəyinizi bilirdinizmi? Hadisə dinləyicilərini “hard code” əvəzinə, onları hesablanmış hadisə adları ilə v-on (@) istifadə edərək dinamik şəkildə bağlaya bilərsiniz:

    <script setup lang="ts">
    import { computed, ref } from 'vue';
    
    const event = ref<'mouseover' | 'click'>('mouseover');
    
    const eventHistory = ref<Array<string>>([]);
    
    const buttonLabel = computed(() =>
      event.value === 'mouseover' ? 'Hover Me' : 'Click Me'
    );
    
    const onHandleEvent = () => {
      eventHistory.value = [
        ...eventHistory.value,
        `${new Date().toISOString()}: ${event.value}`,
      ];
    };
    </script>
    
    <template>
      <div class="wrapper">
        <div class="wrapper">
          <span>Select an event type: </span>
          <div>
            <label>
              <input type="radio" name="event" v-model="event" value="mouseover" />
              On Hover
            </label>
    
            <label>
              <input type="radio" name="event" v-model="event" value="click" />
              On Click
            </label>
          </div>
        </div>
        <button @[event]="onHandleEvent">{{ buttonLabel }}</button>
        <div class="wrapper" v-if="eventHistory.length > 0">
          <strong>Event History:</strong>
          <span v-for="entry of eventHistory">{{ entry }}</span>
        </div>
      </div>
    </template>
    
    <style scoped>
    .wrapper {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }
    </style>
    

    ✨ Demo

    Link Preview Image
    Vue Tip: Dynamic Event Names - StackBlitz

    Next generation frontend tooling. It's fast!

    favicon

    StackBlitz (stackblitz.com)

    1 cavab Son cavab
    Cavab ver
    • Mövzu olaraq cavablandır
    🔑 Daxil ol
    • Ən köhnədən yeniyə
    • Ən yenidən köhnəyə
    • Ən çox səs




    Bilik paylaşdıqca artan bir sərvətdir
    • Daxil ol

    • Sizin hesabınız yoxdur? Qeydiyyatdan keç

    • Axtarış etmək üçün daxil olun və ya qeydiyyatdan keçin.
    • İlk yazı
      Son yazı
    0
    • Kateqoriyalar
    • Ən yeni
    • Teqlər
    • Populyar