Heim  >  Artikel  >  Web-Frontend  >  So erhalten Sie Dom-Elemente in Vue

So erhalten Sie Dom-Elemente in Vue

亚连
亚连Original
2018-06-14 17:47:314548Durchsuche

In diesem Artikel werden hauptsächlich die Vorsichtsmaßnahmen für Vue zum Erhalten von Dom-Elementen und der Inhalt von Vue zum Erhalten von Dom-Elementen vorgestellt.

mounted(){
    setTimeout(()=>{
     this.contentToggle();
    },1000)
  },

methods:{
   contentToggle(){
    console.log(this.$refs.bodyFont.offsetHeight);
   }
  }

Vue möchte im Allgemeinen die Höhe von Dom-Elementen erhalten , wir alle Wir können uns vorstellen, es in der gemounteten Funktion zu schreiben, das heißt, es nach dem Laden des Doms abzurufen, aber das Ergebnis ist nicht das, was wir dachten. Wir haben auch darüber nachgedacht, ein

this.$nextTick(()=>{
   
    //函数
})

zu verwenden, um es zu bekommen , aber festgestellt, dass es überhaupt nutzlos ist/. .

Eine gute Möglichkeit ist die Verwendung eines setTimeout-Timers. Die Zeit kann auf 0 gesetzt werden, aber manchmal wird sie wirksam und manchmal wird sie nicht wirksam Sie können sicherstellen, dass Sie es erhalten, nachdem der Dom geladen wurde. Dieses Prinzip gilt für viele Werteübertragungsprobleme in Vue. Wenn Sie den übergebenen Wert zu Beginn nicht erhalten können, verwenden Sie einfach ein setTimeout.

ps: VUE ruft den Inhalt des DOM-Elements ab

Dom-Element über Ref abrufen

Überprüfen Sie den Ref auf dem Vue offizielle Website Erklärung

ref wird verwendet, um Referenzinformationen zu Elementen oder Unterkomponenten zu registrieren. Referenzinformationen werden im $refs-Objekt der übergeordneten Komponente registriert. Bei Verwendung auf einem normalen DOM-Element zeigt die Referenz auf das DOM-Element; bei Verwendung auf einer Unterkomponente verweist die Referenz auf die Komponenteninstanz

Wenn v-for auf einem Element oder einer Komponente verwendet wird, sind die Referenzinformationen wird ein Array sein, das DOM-Knoten oder Komponenteninstanzen enthält

Der Effekt, den ich jetzt erreichen möchte, besteht beispielsweise darin, auf das mit v-for generierte li zu klicken und den Wert des Elements abzurufen

Zuerst , das aktuell angeklickte li-Element abrufen, was wir tun müssen:

1 Fügen Sie dem Dom ein Click-Ereignis und ein Ref-Attribut hinzu

<li class="sidebar-list" v-for="(item, index) in meunList" @click="setPageMenu(index)" ref="menuItem">
  <router-link class="sidebar-a" :to="{ path: item.listLink }" >{{item.listTitle}}</router-link>
</li>

2 Verwenden Sie dann ref in der Click-Event-Methode

setPageMenu(index) {
//这个是获取当前menuItem值,用index来区分当前元素是v-for 产生的数组中的第几个数
  let getMenuText = this.$refs.menuItem[index].innerText;
}

Das oben Gesagte bin ich. Ich habe es für alle zusammengestellt und hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Devtool im Webpack verwenden, um es im Detail zu erklären

Wie verwende ich implizite Aufrufe in Javascript?

So erstellen Sie eine große Single-Page-Anwendung mit vue.js

Wie Sie den WeChat-Freundeskreis zum Teilen implementieren und Freunde in Vue senden

Erklären Sie, wie Sie Vuex implementieren (ausführliches Tutorial)

Implementieren Sie die WeChat-Zahlung über vue.js

Das obige ist der detaillierte Inhalt vonSo erhalten Sie Dom-Elemente in Vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn