Jadual Kandungan
Apakah penggunaan nexttick dalam vue
Bilakah anda perlu menggunakan Vue. seterusnyaTick()? ?
Prinsip penggunaan Vue.nextTick(panggilan balik):
Rumah hujung hadapan web View.js Apakah kegunaan nexttick dalam vue

Apakah kegunaan nexttick dalam vue

Mar 17, 2022 pm 04:03 PM
vue

Dalam vue, nexttick() digunakan untuk melengahkan fungsi panggil balik yang dipanggil selepas data kemas kini DOM seterusnya anda boleh melaksanakan panggilan balik tertunda selepas kitaran kemas kini DOM seterusnya tamat dan menggunakannya untuk mendapatkan DOM yang dikemas kini; selepas mengubah suai data. Sintaks ialah "Vue.nextTick([panggilan balik,konteks])".

Apakah kegunaan nexttick dalam vue

Persekitaran pengendalian artikel ini: sistem Windows 10, versi Vue 2.9.6, komputer DELL G3.

Apakah penggunaan nexttick dalam vue

Definisi: Laksanakan panggilan balik tertunda selepas kitaran kemas kini DOM seterusnya tamat. Gunakan kaedah ini serta-merta selepas mengubah suai data untuk mendapatkan DOM yang dikemas kini.

Jadi kaedah Vue ini untuk mendapatkan DOM yang dikemas kini telah diperolehi. Oleh itu, pelaksanaan yang diletakkan dalam fungsi panggil balik Vue.nextTick() hendaklah kod js yang mengendalikan DOM

Pemahaman: nextTick() menangguhkan fungsi panggil balik sehingga kali seterusnya DOM mengemas kini data pemahaman mudah ialah: apabila data dikemas kini dan dipaparkan dalam dom, fungsi itu dilaksanakan secara automatik

<template>
  <div class="hello">
    <div>
      <button id="firstBtn" @click="testClick()" ref="aa">{{testMsg}}</button>
    </div>
  </div>
</template>
 
<script>
export default {
  name: &#39;HelloWorld&#39;,
  data () {
    return {
      testMsg:"原始值",
    }
  },
  methods:{
    testClick:function(){
      let that=this;
      that.testMsg="修改后的值";
      console.log(that.$refs.aa.innerText);   //that.$refs.aa获取指定DOM,输出:原始值
    }
  }
}
</script>
Salin selepas log masuk

Gunakan ini.$nextTick()

  methods:{
    testClick:function(){
      let that=this;
      that.testMsg="修改后的值";
      that.$nextTick(function(){
        console.log(that.$refs.aa.innerText);  //输出:修改后的值
      });
    }
  }
Salin selepas log masuk

Nota: Pelaksanaan Vue. Responsif tidak bermakna DOM berubah serta-merta selepas data berubah, tetapi mengemas kini DOM mengikut strategi tertentu. $nextTick adalah untuk melaksanakan panggilan balik tertunda selepas kitaran kemas kini DOM seterusnya tamat Jika anda menggunakan $nextTick selepas mengubah suai data, anda boleh mendapatkan DOM yang dikemas kini dalam panggilan balik

Bilakah anda perlu menggunakan Vue. seterusnyaTick()? ?

1. Operasi DOM yang dilakukan oleh fungsi cangkuk yang dicipta() bagi kitaran hayat Vue mesti diletakkan dalam fungsi panggil balik Vue.nextTick() Sebabnya ialah apabila fungsi cangkuk yang dicipta adalah dilaksanakan, DOM sebenarnya tidak Melakukan apa-apa pemaparan, dan melaksanakan operasi DOM pada masa ini adalah sama dengan sia-sia, jadi kod js untuk operasi DOM mesti dimasukkan ke dalam fungsi panggil balik Vue.nextTick(). Sepadan dengan ini ialah fungsi cangkuk yang dipasang, kerana semua pemasangan DOM telah selesai apabila fungsi cangkuk ini dilaksanakan.

  created(){
    let that=this;
    that.$nextTick(function(){  //不使用this.$nextTick()方法会报错
        that.$refs.aa.innerHTML="created中更改了按钮内容";  //写入到DOM元素
    });
  },
Salin selepas log masuk

2 Apabila anda ingin melakukan sesuatu berdasarkan DOM baharu selepas menukar data elemen DOM dalam projek, satu siri operasi js pada DOM baharu perlu dimasukkan ke dalam panggilan balik fungsi Vue.nextTick(); pemahaman yang popular ialah: selepas menukar data, anda perlu menggunakannya apabila anda ingin menggunakan js untuk mengendalikan paparan baharu dengan segera

<template>
  <div class="hello">
    <h3 id="h">{{testMsg}}</h3>
  </div>
</template>
 
<script>
export default {
  name: &#39;HelloWorld&#39;,
  data () {
    return {
      testMsg:"原始值",
    }
  },
  methods:{
    changeTxt:function(){
      let that=this;
      that.testMsg="修改后的文本值";  //vue数据改变,改变dom结构
      let domTxt=document.getElementById(&#39;h&#39;).innerText;  //后续js对dom的操作
      console.log(domTxt);  //输出可以看到vue数据修改后DOM并没有立即更新,后续的dom都不是最新的
      if(domTxt==="原始值"){
        console.log("文本data被修改后dom内容没立即更新");
      }else {
        console.log("文本data被修改后dom内容被马上更新了");
      }
    },
 
  }
}
</script>
Salin selepas log masuk

Penggunaan yang betul ialah: vue menukar struktur elemen dom dan kemudian menggunakan vue.$ Kaedah nextTick() digunakan untuk menangguhkan pelaksanaan kod berikutnya selepas data dom dikemas kini

    changeTxt:function(){
      let that=this;
      that.testMsg="修改后的文本值";  //修改dom结构
       
      that.$nextTick(function(){  //使用vue.$nextTick()方法可以dom数据更新后延迟执行
        let domTxt=document.getElementById(&#39;h&#39;).innerText; 
        console.log(domTxt);  //输出可以看到vue数据修改后并没有DOM没有立即更新,
        if(domTxt==="原始值"){
          console.log("文本data被修改后dom内容没立即更新");
        }else {
          console.log("文本data被修改后dom内容被马上更新了");
        }
      });
    },
Salin selepas log masuk

3. Apabila menggunakan palam pihak ketiga- dalam, anda berharap untuk menggunakan semula pemalam apabila beberapa dinamik dom yang dihasilkan oleh perubahan vue , kaedah ini juga akan digunakan pada masa ini, anda perlu melaksanakan kaedah menggunakan semula pemalam dalam panggilan balik fungsi $nextTick.

Prinsip penggunaan Vue.nextTick(panggilan balik):

Sebabnya ialah Vue melakukan kemas kini dom secara tidak segerak Setelah perubahan data diperhatikan, Vue akan membuka baris gilir dan kemudian memasukkannya ke dalam Pemerhati yang sama yang memerhati perubahan data dalam gelung acara ditolak ke dalam baris gilir ini. Jika pemerhati ini dicetuskan beberapa kali, ia hanya akan ditolak ke baris gilir sekali. Tingkah laku penimbalan ini boleh menghapuskan pengiraan yang tidak perlu dan operasi DOm dengan berkesan yang disebabkan oleh data pendua. Dalam gelung acara seterusnya, Vue akan mengosongkan baris gilir dan melaksanakan kemas kini DOM yang diperlukan.

Apabila anda menetapkan vm.someData = 'nilai baharu', DOM tidak akan dikemas kini serta-merta, tetapi DOM yang diperlukan akan dikemas kini apabila baris gilir tak segerak dikosongkan, iaitu apabila gelung acara seterusnya bermula. memperbaharui. Jika anda ingin melakukan sesuatu berdasarkan keadaan DOM yang dikemas kini pada masa ini, masalah akan timbul. . Untuk menunggu Vue selesai mengemas kini DOM selepas data berubah, anda boleh menggunakan Vue.nextTick(panggilan balik) serta-merta selepas data berubah. Fungsi panggil balik ini akan dipanggil selepas kemas kini DOM selesai.

[Cadangan berkaitan: "tutorial vue.js"]

Atas ialah kandungan terperinci Apakah kegunaan nexttick dalam vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara merujuk fail js dengan vue.js Cara merujuk fail js dengan vue.js Apr 07, 2025 pm 11:27 PM

Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

Cara menambah fungsi ke butang untuk vue Cara menambah fungsi ke butang untuk vue Apr 08, 2025 am 08:51 AM

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Cara Menggunakan Watch di Vue Cara Menggunakan Watch di Vue Apr 07, 2025 pm 11:36 PM

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Cara kembali ke halaman sebelumnya oleh Vue Cara kembali ke halaman sebelumnya oleh Vue Apr 07, 2025 pm 11:30 PM

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

Vue menyedari kesan menatal marquee/teks Vue menyedari kesan menatal marquee/teks Apr 07, 2025 pm 10:51 PM

Melaksanakan kesan menatal marquee/teks di VUE, menggunakan animasi CSS atau perpustakaan pihak ketiga. Artikel ini memperkenalkan cara menggunakan animasi CSS: Buat teks tatal dan bungkus teks dengan & lt; div & gt;. Tentukan animasi CSS dan tetapkan limpahan: tersembunyi, lebar, dan animasi. Tentukan frasa key, set Transform: TranslateX () pada permulaan dan akhir animasi. Laraskan sifat animasi seperti tempoh, kelajuan tatal, dan arah.

Cara Menanyakan Versi Vue Cara Menanyakan Versi Vue Apr 07, 2025 pm 11:24 PM

Anda boleh menanyakan versi VUE dengan menggunakan Vue Devtools untuk melihat tab VUE dalam konsol penyemak imbas. Gunakan NPM untuk menjalankan arahan "NPM LIST -G VUE". Cari item VUE dalam objek "Dependencies" fail Package.json. Untuk projek Vue CLI, jalankan perintah "Vue -version". Semak maklumat versi di & lt; skrip & gt; Tag dalam fail HTML yang merujuk kepada fail VUE.

Cara Menggunakan Vue Traversal Cara Menggunakan Vue Traversal Apr 07, 2025 pm 11:48 PM

Terdapat tiga kaedah umum untuk vue.js untuk melintasi tatasusunan dan objek: Arahan V-untuk digunakan untuk melintasi setiap elemen dan membuat templat; Arahan V-mengikat boleh digunakan dengan V-untuk menetapkan nilai atribut secara dinamik untuk setiap elemen; dan kaedah .map boleh menukar elemen array ke dalam tatasusunan baru.

See all articles