cari
Rumahhujung hadapan webView.jsApakah kegunaan nexttick dalam 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>

Gunakan ini.$nextTick()

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

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元素
    });
  },

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="testMsg">{{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>

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内容被马上更新了");
        }
      });
    },

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
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
Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Apr 13, 2025 am 12:05 AM

Netflix terutamanya menganggap prestasi, skalabiliti, kecekapan pembangunan, ekosistem, hutang teknikal dan kos penyelenggaraan dalam pemilihan rangka kerja. 1. Prestasi dan Skalabiliti: Java dan Springboot dipilih untuk memproses data besar -besaran dan permintaan serentak yang tinggi. 2. Kecekapan Pembangunan dan Ekosistem: Gunakan React untuk meningkatkan kecekapan pembangunan front-end dan menggunakan ekosistemnya yang kaya. 3. Hutang Teknikal dan Penyelenggaraan Kos: Pilih Node.js untuk membina mikroservis untuk mengurangkan kos penyelenggaraan dan hutang teknikal.

React, Vue, dan Masa Depan Frontend NetflixReact, Vue, dan Masa Depan Frontend NetflixApr 12, 2025 am 12:12 AM

Netflix terutamanya menggunakan React sebagai rangka kerja front-end, ditambah dengan VUE untuk fungsi tertentu. 1) Komponen React dan DOM maya meningkatkan prestasi dan kecekapan pembangunan aplikasi Netflix. 2) VUE digunakan dalam alat dalaman dan projek kecil Netflix, dan fleksibiliti dan kemudahan penggunaannya adalah kunci.

Vue.js di frontend: aplikasi dan contoh dunia nyataVue.js di frontend: aplikasi dan contoh dunia nyataApr 11, 2025 am 12:12 AM

Vue.js adalah rangka kerja JavaScript yang progresif yang sesuai untuk membina antara muka pengguna yang kompleks. 1) Konsep terasnya termasuk data responsif, komponen dan DOM maya. 2) Dalam aplikasi praktikal, ia boleh ditunjukkan dengan membina aplikasi todo dan mengintegrasikan vuerouter. 3) Apabila debugging, disyorkan untuk menggunakan Vuedevtools dan Console.log. 4) Pengoptimuman prestasi boleh dicapai melalui V-IF/V-Show, senarai pengoptimuman rendering, pemuatan asynchronous komponen, dll.

Vue.js dan bertindak balas: Memahami perbezaan utamaVue.js dan bertindak balas: Memahami perbezaan utamaApr 10, 2025 am 09:26 AM

Vue.js sesuai untuk projek kecil dan sederhana, sementara React lebih sesuai untuk aplikasi besar dan kompleks. 1. Sistem responsif vue.js secara automatik mengemas kini DOM melalui pengesanan ketergantungan, menjadikannya mudah untuk menguruskan perubahan data. 2. Leact mengamalkan aliran data sehala, dan data mengalir dari komponen induk ke komponen kanak-kanak, menyediakan aliran data yang jelas dan struktur yang mudah dibuang.

Vue.js vs React: Pertimbangan khusus projekVue.js vs React: Pertimbangan khusus projekApr 09, 2025 am 12:01 AM

Vue.js sesuai untuk projek kecil dan sederhana dan lelaran yang cepat, sementara React sesuai untuk aplikasi besar dan kompleks. 1) Vue.js mudah digunakan dan sesuai untuk situasi di mana pasukan tidak mencukupi atau skala projek kecil. 2) React mempunyai ekosistem yang lebih kaya dan sesuai untuk projek dengan prestasi tinggi dan keperluan fungsional yang kompleks.

Cara melompat tag ke vueCara melompat tag ke vueApr 08, 2025 am 09:24 AM

Kaedah untuk melaksanakan lompatan tag dalam Vue termasuk: menggunakan tag dalam templat HTML untuk menentukan atribut HREF. Gunakan komponen router-link routing VUE. Gunakan ini. $ Router.push () kaedah dalam JavaScript. Parameter boleh dilalui melalui parameter pertanyaan dan laluan dikonfigurasikan dalam pilihan penghala untuk lompatan dinamik.

Cara melaksanakan lompat komponen untuk vueCara melaksanakan lompat komponen untuk vueApr 08, 2025 am 09:21 AM

Terdapat kaedah berikut untuk melaksanakan lompat komponen di Vue: Gunakan Router-Link dan & lt; Router-View & GT; Komponen untuk melaksanakan lompat hiperpautan, dan tentukan: untuk atribut sebagai laluan sasaran. Gunakan & lt; router-view & gt; Komponen secara langsung untuk memaparkan komponen yang dijalankan yang sedang dialihkan. Gunakan kaedah router.push () dan router.replace () untuk navigasi programatik. Bekas menjimatkan sejarah dan yang kedua menggantikan laluan semasa tanpa meninggalkan rekod.

Cara melompat ke Div VueCara melompat ke Div VueApr 08, 2025 am 09:18 AM

Terdapat dua cara untuk melompat elemen div di Vue: Gunakan Vue Router dan tambahkan komponen router-link. Tambah pendengar acara @Click dan panggil ini. $ Router.push () kaedah untuk melompat.

See all articles

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 laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan