Bagaimana untuk melaksanakan tatal ke pembolehubah elemen tertentu dalam Vue 3?
P粉060528326
2023-08-28 20:17:07
<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>
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.
Vue 2 / API Pilihan
Pembolehubah mestilah rentetan yang sepadan dengan ref pada elemen
Vue 3 / API Gabungan
Pembolehubah hendaklah diberi nilai
ref()
(perlu diimport). Nama pemalar hendaklah sepadan dengan nama ref pada elemenAPI 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