菜单
×
   ❮   
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 教程

Vue 首页 Vue Intro Vue Directives Vue v-bind Vue v-if Vue v-show Vue v-for Vue Events Vue v-on Vue Methods Vue Event Modifiers Vue Forms Vue v-model Vue CSS Binding Vue Computed Properties Vue Watchers Vue Templates

Scaling Up

Vue 原因、方法和设置 Vue 第一个 SFC 页面 Vue 组件 Vue Props Vue v-for 组件 Vue $emit() Vue Fallthrough Attributes Vue Scoped Styling Vue 本地组件 Vue Slots Vue v-slot Vue Scoped Slots Vue 动态组件 Vue Teleport Vue HTTP 请求 Vue Template Refs Vue 生命周期钩子 Vue Provide/Inject Vue Routing Vue 表单输入 Vue 动画 Vue v-for 动画 Vue Build Vue Composition API

Vue Reference

Vue Built-in Attributes Vue Built-in Components Vue Built-in Elements Vue Component Instance Vue Directives Vue Instance Options Vue Lifecycle Hooks

Vue 示例

Vue Examples Vue Exercises Vue Quiz Vue Server Vue Certificate

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>

开始练习



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持