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])".
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: 'HelloWorld', 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: 'HelloWorld', data () { return { testMsg:"原始值", } }, methods:{ changeTxt:function(){ let that=this; that.testMsg="修改后的文本值"; //vue数据改变,改变dom结构 let domTxt=document.getElementById('h').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('h').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!

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.

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 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 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 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.

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.

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.

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.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

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
Editor kod yang mudah digunakan dan percuma

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
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan