Bagaimana untuk melaksanakan tatal ke pembolehubah elemen tertentu dalam Vue 3?
P粉060528326
P粉060528326 2023-08-28 20:17:07
0
1
620
<p>Saya mempunyai fungsi berikut dalam JavaScript tulen untuk menatal ke elemen dan saya mahu menukar kod ini kepada Vue 3. </p> <pre class="brush:php;toolbar:false;">var source = '' function showScrollInto(currentLocation, toLocation) { source = currentLocation // Lokasi untuk kembali selepas menyembunyikan bahagian document.getElementById(toLocation).style.display = 'block' document.getElementById(toLocation).scrollIntoView() }</pre> <p>dan kembali ke lokasi asal: </p> <pre class="brush:php;toolbar:false;">document.getElementById(source).scrollIntoView()</pre> <p>Panggil showScrollKe dalam apabila butang diklik: </p> <pre class="brush:php;toolbar:false;"><button onClick="showScrollInto('top', 'interesse')">TITLE</button></pre> <p>Sekarang saya menukar fungsi kepada kaedah dan cuba: </p> <pre class="brush:php;toolbar:false;">import { ref } daripada "vue" var sumber = "" const toLocation = ref('Vue.js') eksport lalai { nama: "App", data() { kembali { hideAlleClubs: benar, hideIkWilKennismaken: benar, hideAlleLocaties: benar, hideMeerOverKegelen: benar, hideInteresse: benar } }, kaedah: { showScrollInto(event, currentLocation, toLocation) { source = currentLocation // Lokasi untuk kembali selepas menyembunyikan bahagian this.hideInteresse = palsu this.$refs.toLocation.scrollIntoView({ tingkah laku: 'smooth'}) // document.getElementById(toLocation).style.display = 'block' // document.getElementById(toLocation).scrollIntoView() } } }</pre> <p>Panggil showScrollInto pada klik butang: </p> <pre class="brush:php;toolbar:false;"><button @click="showScrollInto($event, 'kosten', 'interesse')">TITLE</button></ pra> <p>Elemen untuk menatal adalah seperti berikut: </p> <pre class="brush:php;toolbar:false;"><kelas bahagian = "v-show="!hideInteresse" pra> <p>Melalukan pembolehubah ke dalam kaedah berfungsi dengan baik, tetapi saya tidak dapat memikirkan cara untuk menatal ke kedudukan yang kedudukannya ialah pembolehubah. </p> <p>ini.$refs.interesse.scrollIntoView({ behavior: 'smooth'}) boleh digunakan untuk menatal ke elemen dengan id 'interesse', tetapi saya tidak tahu cara menukar nama elemen itu kepada pembolehubah . Selain itu, saya faham bahawa ini.$refs bukan tatatanda Vue 3 dan harus ditukar kepada sesuatu seperti ref('value'), tetapi saya tidak tahu cara melakukannya.</p>
P粉060528326
P粉060528326

membalas semua(1)
P粉282627613

Pertama, baca dokumentasi Vue tentang rujukan templat. Terdapat butang togol di penjuru kiri sebelah atas halaman untuk bertukar antara pilihan API dan sintaks API gabungan.

Menggunakan rujukan pembolehubah untuk rujukan bergantung pada versi Vue dan/atau sintaks yang anda gunakan.

<div ref="someRefName"></div>

Vue 2 / API Pilihan

Pembolehubah mestilah rentetan yang sepadan dengan ref pada elemen

const refVar = "someRefName"
this.$refs[refVar].scrollIntoView({ behavior: "smooth" });

Vue 3 / API Gabungan

Pembolehubah hendaklah diberi nilai ref() (perlu diimport). Nama pemalar hendaklah sepadan dengan nama ref pada elemen

const someElement = ref() // 赋值给模板中的某个元素
someElement.value.scrollIntoView({ behavior: "smooth" });

API Pilihan dan API komposisi tidak boleh dicampur, jadi hanya satu sintaks digunakan.

Dalam kedua-dua kes anda boleh mempunyai berbilang elemen dengan nama rujukan yang sama, pada ketika itu Vue akan mencipta tatasusunan yang mengandungi semua rujukan dengan nama yang sama, jadi untuk mengakses elemen tertentu anda juga perlu menggunakan indeks.

Berikut adalah beberapa contoh ringkas. Semoga mereka menyelesaikan masalah anda yang tinggal dan anda boleh mengubah suainya mengikut keperluan.

Contoh kotak pasir kod API pilihan

Contoh kotak pasir kod API gabungan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan