• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Vue.js Obsluga zdarzeń

0 głosów
289 wizyt
pytanie zadane 9 lipca 2018 w JavaScript przez Piotr Szramowski Użytkownik (860 p.)
Cześć wszystkim .Ostatnio natknełem sie na problem Vue.js ,że nie ma wbudowanego zdarzenia resize . chciałem sie dowiedzieć w jaki sposób dodać takie zdrzenie . Moim celem jest . Z czytanie wielkość  okna przeglądarki i  w momencie przekroczenia pewnej wielkość elementy na stronie za pomoca dytektywy v-show mają zniknąć. Co mam zrobić lub dodać żeby  istancja Vue z Czytała zdarzenia w ( methods lub Computed)

< tr   @resize = "change" > ==> Co dalej

2 odpowiedzi

0 głosów
odpowiedź 9 lipca 2018 przez thryndl Nałogowiec (30,470 p.)

Miałem ostatnio podobny problem, z tym, że chciałem responsywnie dopasować rozmiar odtwarzacza na stronie.

Rozwiązałem to w ten sposób.

W template na elemencie v-layout (vuetify) dałem zdarzenie v-resize i nasłuchiwanie na metodę onResize()

W data() dodałem obiekt windowSize, który przechowuje rozmiar okna, jego width i height.

w mounted() podmontowałem metodę onResize(), a sama metoda onResize() wygląda tak:

onResize () {
    this.windowSize = { w: window.innerWidth - 190, h: window.innerHeight - 230 }
}

Cały kod prezentuje się następująco:

<template>
  <v-layout justify-center align-center v-resize="onResize">
   // ...
  </v-layout>
</template>

<script>
export default {
  data () {
    return {
      windowSize: {
        w: 0,
        h: 0
      }
    }
  },
  mounted () {
    this.onResize()
  },
  methods: {
    onResize () {
      this.windowSize = { w: window.innerWidth - 190, h: window.innerHeight - 230 } // odejmowane wartości tworzą marginesy
    }
  }
}
</script>

 

0 głosów
odpowiedź 9 lipca 2018 przez niezalogowany
methods: {
  onResize (e) {
    console.log(e)
  }
},
mounted () {
  window.addEventListener('resize', this.onResize)
},
beforeDestroy () {
  window.removeEventListener('resize', this.onResize)
}
komentarz 9 lipca 2018 przez Piotr Szramowski Użytkownik (860 p.)
Dzięki za kod .Czy byś mógł opisać działanie tych metod żebym bardziej zrozumiał
komentarz 9 lipca 2018 przez Piotr Szramowski Użytkownik (860 p.)

@argeent co robi mounted dokladnie 

komentarz 9 lipca 2018 przez niezalogowany

mounted to metoda, która wywoływana jest wraz ze stworzeniem komponentu na stronie.

komentarz 9 lipca 2018 przez Piotr Szramowski Użytkownik (860 p.)
A Prowaleś dodawać  przez @rezize czy czasem to nie było bardziej lekkie dla przegladarki .Czy już to tesowałeś ?
komentarz 9 lipca 2018 przez niezalogowany
Nie ma takiej dyrektywy jak @resize.

Jeśli zależy Ci na wydajności, użyj debounce/throttle

Podobne pytania

+2 głosów
1 odpowiedź 181 wizyt
+1 głos
1 odpowiedź 358 wizyt
pytanie zadane 16 stycznia 2023 w JavaScript przez mi-20 Stary wyjadacz (13,250 p.)
+1 głos
1 odpowiedź 201 wizyt
pytanie zadane 16 listopada 2022 w JavaScript przez mi-20 Stary wyjadacz (13,250 p.)

93,428 zapytań

142,423 odpowiedzi

322,652 komentarzy

62,789 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...