文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue 条件渲染的魔力,解析各种场景!

2024-04-02 19:55

关注

Vue.js 中的条件渲染是一种强大的技术,它允许开发者根据条件动态显示或隐藏元素。这对于构建交互式和响应式用户界面至关重要。本文将深入探讨条件渲染的各种场景,从基本用例到高级技术。

场景 1:使用 v-if 和 v-else

示例:显示按钮,当计数大于 0 时可用:

<template>
  <button v-if="count > 0" @click="doSomething">Click me</button>
  <span v-else>Button disabled</span>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    };
  },
  methods: {
    doSomething() {
      // ...
    }
  }
};
</script>

场景 2:使用 v-show 和 v-cloak

示例:淡入一个加载完成的组件:

<template>
  <div v-show="loading">Loading...</div>
  <component v-cloak :is="component"></component>
</template>

<script>
export default {
  data() {
    return {
      loading: true,
      component: null
    };
  },
  mounted() {
    // 异步加载组件
    setTimeout(() => {
      this.loading = false;
      this.component = MyComponent;
    }, 1000);
  }
};
</script>

场景 3:使用三元运算符

示例:根据用户角色显示不同的文本:

<template>
  <p>{{ role === "admin" ? "Administrator" : "Guest" }}</p>
</template>

<script>
export default {
  data() {
    return {
      role: "guest"
    };
  }
};
</script>

场景 4:使用计算属性

示例:根据用户输入动态计算可用的选项:

<template>
  <select>
    <option v-for="option in options" :value="option.value">{{ option.label }}</option>
  </select>
</template>

<script>
export default {
  data() {
    return {
      userInput: ""
    };
  },
  computed: {
    options() {
      return this.userInput.length > 0
        ? filteredOptions(this.userInput)
        : [];
    }
  }
};
</script>

场景 5:使用插槽

示例:创建一个可重用的模态框,其内容由插槽定义:

<template>
  <transition name="fade">
    <div v-if="show" class="modal">
      <div class="modal-content">
        <slot />
        <button @click="show = false">Close</button>
      </div>
    </div>
  </transition>
</template>

<script>
export default {
  data() {
    return {
      show: false
    };
  }
};
</script>
<Modal>
  <h1>Hello World!</h1>
  <p>This is the content of the modal.</p>
</Modal>

高级技术:

结语:

条件渲染是 Vue 中的一个强大工具,使开发者能够根据条件动态显示或隐藏元素。通过熟练掌握各种场景和高级技术,开发者可以构建复杂而响应式用户界面,无缝适应用户交互和数据变化。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯