Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Vue v-show 指令

学习如何使用 v-show 使元素可见或不可见。

v-show 易于使用,因为条件直接写在 HTML 标签属性中。

条件可见性

当条件为 'false' 时,v-show 指令通过将 CSS 'display' 属性值设置为 'none' 来隐藏元素。

在将 v-show 作为 HTML 属性编写后,我们必须提供一个条件来决定标签是否可见。

语法

<div v-show="showDiv">这个 div 标签可以隐藏</div>

在上面的代码中,'showDiv' 代表一个布尔型 Vue 数据属性,其属性值为 'true' 或 'false'。如果 'showDiv' 为 'true',则显示 div 标签,如果为 'false',则不显示标签。

示例

仅当 showDiv 属性设置为 'true' 时才显示 <div> 元素。

<div id="app">
  <div v-show="showDiv">这个 div 标签可以隐藏</div>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        showDiv: true
      }
    }
  })
  app.mount('#app')
</script>
自己试试 »

v-showv-if

v-showv-if 之间的区别在于,v-if 会根据条件创建(渲染)元素,而 v-show 则会创建元素,然后 v-show 仅更改其可见性。

因此,在切换对象可见性时,最好使用 v-show,因为它更容易让浏览器执行,并且可以带来更快的响应速度和更好的用户体验。

使用 v-if 而不是 v-show 的原因是,v-if 可以与 v-else-ifv-else 一起使用。

在下面的示例中,v-showv-if 分别用于两个不同的 <div> 元素,但基于相同的 Vue 属性。您可以打开示例并检查代码以查看 v-show 会保留 <div> 元素,仅将 CSS display 属性设置为 'none',而 v-if 实际上会销毁 <div> 元素。

示例

仅当 showDiv 属性设置为 'true' 时才显示两个 <div> 元素。如果 showDiv 属性设置为 'false',并且我们使用浏览器检查示例页面,我们可以看到使用 v-if 的 <div> 元素被销毁,而使用 v-show 的 <div> 元素只是将 CSS display 属性设置为 'none'。

<div id="app">
  <div v-show="showDiv">使用 v-show 的 Div 标签</div>
  <div v-if="showDiv">使用 v-if 的 Div 标签</div>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        showDiv: true
      }
    }
  })
  app.mount('#app')
</script>
自己试试 »

Vue 练习

通过练习测试自己

练习

填写缺失的部分,以便 Vue 根据 'lightOn' 布尔数据属性为我们切换下面 <div> 标签的可见性。

<div id="app">
  <div id="lightDiv">
    <div ="lightOn"></div>
    <img src="img_lightBulb.svg">
  </div>
  <button v-on:click=" lightOn =! lightOn ">Switch light</button>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        lightOn: false
      }
    }
  })
  app.mount('#app')
</script>

开始练习



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.