cari
Rumahhujung hadapan webView.jsPenjelasan terperinci tentang arahan pemaparan bersyarat Vue: v-if dan v-show

Penjelasan terperinci tentang arahan pemaparan bersyarat Vue: v-if dan v-show

Aug 10, 2022 pm 05:03 PM
vuev-ifArahan rendering bersyaratv-show

Dalam Vue, kita boleh menggunakan v-if dan v-show untuk mengawal pemaparan elemen atau templat. Dan v-if dan v-show juga merupakan arahan dalaman yang biasa digunakan dalam Vue. Arahan yang disebut di sini ialah directive, yang merujuk kepada perintah khas dengan awalan v- Nilai arahan adalah terhad kepada ungkapan mengikat Tanggungjawab arahan adalah untuk menggunakan tingkah laku khas tertentu apabila nilai ekspresi berubah kepada DOM. Dua arahan

Penjelasan terperinci tentang arahan pemaparan bersyarat Vue: v-if dan v-show

v-if dan v-show ialah perkara yang sering dipanggil oleh semua orang sebagai arahan pemaparan bersyarat. (Belajar perkongsian video: tutorial video vue)

v-if : Arahan cawangan bersyarat


Mari kita lihat dahuluv-if arahan. Fungsinya adalah untuk menjana atau mengalih keluar elemen (atau berbilang elemen) dalam DOM berdasarkan nilai ungkapan true atau false. Ia agak serupa dengan if pertimbangan bersyarat dalam JavaScript. Selain v-if, terdapat juga v-else-if dan v-else dalam Vue.

v-if

Seperti yang dinyatakan sebelum ini, v-if menentukan sama ada untuk menjana elemen dalam DOM berdasarkan nilai ungkapan. Contohnya:

<!-- template -->
<div>
    <h1 id="v-if的值为true时-显示这个div元素">v-if的值为true时,显示这个div元素</h1>
</div>

// JavaScript
var app = new Vue({
    el: '#app',
    data: {

    }
})

Pada masa ini, elemen <h1></h1> dimasukkan ke dalam elemen div#app dan diberikan:

dalam Vue , jika anda perlu menentukan sama ada elemen dipaparkan, tambahkan arahan v-if pada elemen dan tetapkan nilainya kepada true atau false. Sebagai contoh, dalam contoh di atas, kami tetapkan true dan elemen itu diberikan. Jika nilai true di atas digantikan dengan false, elemen <h1></h1> tidak akan dipaparkan.

Selain menetapkan terus v-if atau true kepada false, anda juga boleh membuat pertimbangan melalui ungkapan. Contohnya:

<!-- template -->
<div>
    <h1>
    v-if的值为true时,显示这个div元素
    </h1>
</div>
// JavaScript
    var app = new Vue({
    el: '#app',
    data: { isShow: true }
})

Dalam contoh di atas, nilai isShow diisytiharkan sebagai true, dan kemudian dalam elemen h1, arahan v-if digunakan untuk mengikat isShow. Sebenarnya serupa dengan v-if="true". Elemen h1 juga dipaparkan secara normal:

Apabila anda menetapkan isShow kepada false, elemen h1 tidak akan dipaparkan.

Apa yang kita lihat di atas ialah memaparkan satu elemen Jika anda ingin memaparkan berbilang elemen, adakah anda perlu meletakkan berbilang elemen secara langsung di dalam? Mari sahkan pemikiran kita:

<!-- template -->
<div>
    <div>
        <h1 id="我是标题">我是标题</h1>
        <p>我是段落</p>
    </div>
</div>

Ia sama seperti yang kita bayangkan. Tetapi dalam Vue, apabila kami menukar berbilang elemen, kami biasanya tidak menggunakannya dengan cara ini sebaliknya, kami menggunakan elemen <template></template> sebagai elemen pembungkusan dan menggunakan v-if padanya. Hasil pemaparan akhir tidak akan mengandungi elemen <template></template>. Ia kelihatan seperti ini:

<template>
    <h1 id="标题">标题</h1>
    <p>段落 1</p>
    <p>段落 2</p>
</template>

v-else

v-else serupa dengan else dalam JavaScript, tetapi Ia harus digunakan bersama dengan v-if. Sebagai contoh, jika kita log masuk, mesej alu-aluan akan dipaparkan jika log masuk, jika tidak, pengguna akan digesa untuk log masuk. Kemudian kita boleh menetapkan ungkapan isLogined, seperti:

<!-- Template -->
<div>
    <h1 id="欢迎来到W-cplus">欢迎来到W3cplus!(^_^)</h1>
    <h1 id="请先登录-再来">请先登录,再来!(^_^)</h1>
</div>

// JavaScript
var app = new Vue({
    el: '#app',
    data: {
        isLogined: true
    }
})

Seperti yang anda fikirkan, anda boleh melihat kesan gambar berikut dalam penyemak imbas:

Ganti nilai isLogined dengan false, maka kandungan yang diberikan akan berubah:

Dalam projek sebenar, apabila kita mempunyai komponen Apabila kesan pemaparan kedua-dua keadaan adalah berbeza, ia mudah digunakan v-if dan v-else bersama dengan <template></template>. Contohnya, menang dan tidak menang:

<template>
    <figure>
        <figcaption>恭喜你中了5元红包</figcaption>
        <img  src="/static/imghwm/default1.png" data-src="xxx" class="lazy" alt="Penjelasan terperinci tentang arahan pemaparan bersyarat Vue: v-if dan v-show" >
    </figure>
</template>

<template>
    <figure>
        <figcaption>亲,就差那么一点点</figcaption>
        <img  src="/static/imghwm/default1.png" data-src="xxx" class="lazy" alt="Penjelasan terperinci tentang arahan pemaparan bersyarat Vue: v-if dan v-show" >
    </figure>
</template>

v-else-if

v-else-if serupa dengan else if dalam JavaScript dan perlu dipadankan dengan v-if digunakan bersama. Apabila beberapa keadaan wujud pada masa yang sama, paparan atau tidak ditentukan berdasarkan hasil operasi. Seperti yang ditunjukkan dalam kod berikut, blok mana yang dipaparkan ditentukan berdasarkan nilai type. Sebagai contoh, dalam contoh kami, jika nilai type ditetapkan kepada B, maka blok B akan dipaparkan:

<!-- template -->
<div>
    <div>显示A区域</div>
    <div>显示B区域</div>
    <div>显示C区域</div>
</div>

// JavaScript
var app = new Vue({
    el: '#app',
    data: {
        type: "B"
    }
})

Jika nilai type diubah suai, kawasan yang akan dipaparkan akan Berbeza:

v-show


文章开头提到过,除了v-if之外,Vue还提供v-show也可以控制元素的渲染。v-showv-if功能有点相似,其中v-if依赖于控制DOM节点,而v-show是依赖于控制DOM节点的display属性。当v-show传入的值为true时,对应DOM元素的display的值为block之类的,反之为false时,display的值为none。也就是用户看不到元素的显示,但其DOM元素还是存在的。

<!-- Template -->
<div>
    <h1 id="我是一个标题">我是一个标题</h1>
    <p>我是一个段落</p>
</div>

// JavaScript
var app = new Vue({
    el: '#app',
    data: {
        isShow: false
    }
})

在浏览器看到的效果将是这样的:

注意v-show 不支持 <template></template> 语法,也不支持 v-else

v-if Vs. v-show


v-ifv-show都能控制DOM元素的显示和隐藏,但是在切换v-if模块时,Vue有一个局部编译/卸载过程,因为v-if中的模板可能包括数据绑定或者子组件,v-if是真是的条件渲染,它会确保条件快在切换时合适的销毁与重建条件块内的时间监听器和子组件。

两者之间的具体区别,官网是这样描述的:

  • v-if 是“真正的”条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁重建
  • v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
  • 相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

一般来说,v-if有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件不太可能改变,则使用 v-if 较好

总结


这篇文章主要了解了Vue中的v-ifv-show。这两个都是Vue的内部指令,而且都是用来控制元素的渲染。只不过,v-if判断是否加载,可以减轻服务器的压力,在需要时加载;v-show调整DOM元素的CSS的dispaly属性,可以使客户端操作更加流畅。虽然这两都都能很好的控制元素的渲染,但实际使用的时候,更应该根据自己的场景来判断使用哪一个指令。

原文地址::https://www.w3cplus.com/vue/v-if-vs-v-show.html

(学习视频分享:web前端开发编程基础视频

Atas ialah kandungan terperinci Penjelasan terperinci tentang arahan pemaparan bersyarat Vue: v-if dan v-show. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:博客园. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Memahami Vue.js: Terutama rangka kerja frontendMemahami Vue.js: Terutama rangka kerja frontendApr 17, 2025 am 12:20 AM

Vue.js adalah kerangka JavaScript yang progresif yang dikeluarkan oleh You Yuxi pada tahun 2014 untuk membina antara muka pengguna. Kelebihan terasnya termasuk: 1. Pengikatan data responsif, Paparan Kemas Kini Automatik Perubahan Data; 2. Pembangunan komponen, UI boleh dibahagikan kepada komponen bebas dan boleh diguna semula.

Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Apr 16, 2025 am 12:08 AM

Netflix menggunakan React sebagai kerangka depannya. 1) Model pembangunan komponen React dan ekosistem yang kuat adalah sebab utama mengapa Netflix memilihnya. 2) Melalui komponen, Netflix memisahkan antara muka kompleks ke dalam ketulan yang boleh diurus seperti pemain video, senarai cadangan dan komen pengguna. 3) Kitaran Hayat DOM dan Komponen Maya React mengoptimumkan kecekapan rendering dan pengurusan interaksi pengguna.

Landskap Frontend: Bagaimana Netflix menghampiri pilihannyaLandskap Frontend: Bagaimana Netflix menghampiri pilihannyaApr 15, 2025 am 12:13 AM

Pilihan Netflix dalam teknologi front-end terutamanya memberi tumpuan kepada tiga aspek: pengoptimuman prestasi, skalabilitas dan pengalaman pengguna. 1. Pengoptimuman Prestasi: Netflix memilih React sebagai kerangka utama dan alat yang dibangunkan seperti SpeedCurve dan Boomerang untuk memantau dan mengoptimumkan pengalaman pengguna. 2. Skalabiliti: Mereka mengamalkan seni bina front-end mikro, memisahkan aplikasi ke dalam modul bebas, meningkatkan kecekapan pembangunan dan skalabilitas sistem. 3. Pengalaman Pengguna: Netflix menggunakan perpustakaan komponen bahan-UI untuk terus mengoptimumkan antara muka melalui ujian A/B dan maklum balas pengguna untuk memastikan konsistensi dan estetika.

React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled "gibbon" Builtonreact, notreactorsvuedirectly.1) TeamExperience: chectionBasedOnfamiliarity.2) ProjectOplePlexity: VueforsImplerProjects, ReactForComplexones.3)

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.

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)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

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.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna