2016-05-01 16 views

Odpowiedz

9

Możesz użyć dyrektywy v-el, aby zapisać element, a następnie użyć go później.

https://vuejs.org/api/#vm-els

<div v-el:my-div></div> 
<!-- this.$els.myDiv ---> 

Edit: To jest przestarzałe w Vue 2, zobacz 胡亚雄 odpowiedzieć

+7

To jest przestarzałe, nie używaj w vuejs 2 – David

+0

Przeczytaj https://github.com/vuejs/vue/issues/2873, aby uzyskać szczegółowe informacje na temat tego, co jest przestarzałe, a co nie jest – ytbryan

3

Jeśli próbujesz uzyskać element można użyć Vue.util.query który jest naprawdę tylko otoki wokół document.querySelector ale 14 znaków w porównaniu do 22 znaków (odpowiednio) jest technicznie krótszy. Obsługuje także błędy w przypadku, gdy szukany element nie istnieje.

Nie ma żadnej oficjalnej dokumentacji na Vue.util, ale to cała źródłem funkcji: link

function query(el) { 
    if (typeof el === 'string') { 
    var selector = el; 
    el = document.querySelector(el); 
    if (!el) { 
     ({}).NODE_ENV !== 'production' && warn('Cannot find element: ' + selector); 
    } 
    } 
    return el; 
} 

Repo: Vue.util.query

30

Tam nie skrótowym sposobem w Vue 2.

Metoda Jeffa wydaje się już przestarzała w vue 2.

Jest inny sposób, w jaki możesz osiągnąć swój cel.

<div id="myDiv" ref="myDiv"> 
</div> 

methods: { 

    showMyDiv() { 
     console.log(this.$refs.myDiv); 
    } 
} 
+1

to jest idealne! Dziękuję Ci. – ITWitch

+0

to powinna być zaakceptowana odpowiedź! –

2

można znaleźć odpowiedź w kombinacji tych dwóch stron w API:

ref jest używany do rejestracji w odniesieniu do elementu lub element potomny . Referencja zostanie zarejestrowana pod obiektem $ refs jednostki nadrzędnej . Jeśli używany na prostym elemencie DOM odniesienie będzie ten element

Obiekt, który posiada elementy potomne, które zostały zarejestrowane ref.

0

Staraj się nie robić manipulacji DOM odwołując DOM bezpośrednio, będzie miał wiele kwestii wydajności, również obsługa zdarzeń staje się bardziej skomplikowane, gdy staramy się uzyskać dostęp do DOM bezpośrednio, zamiast korzystać z danych i dyrektyw do manipulowania DOM.

Zapewni to większą kontrolę nad manipulacją, a także będzie w stanie zarządzać funkcjami w formacie modułowym.