uni-app 中如何使用 v-if、v-show 进行条件渲染?

· 约 3 分钟读完 · 第 80 / 162 章

推荐答案

在 uni-app 中,v-if 和 v-show 都可以用于条件渲染,但它们的工作机制和适用场景有所不同。

使用 v-if

使用 v-show

本题详细解读

v-if 和 v-show 的区别

  1. 渲染机制:

    • v-if:当条件为 true 时,元素会被渲染到 DOM 中;当条件为 false 时,元素会从 DOM 中移除。
    • v-show:无论条件是否为 true,元素始终会被渲染到 DOM 中,只是通过 CSS 的 display 属性来控制其显示或隐藏。
  2. 性能影响:

    • v-if:适合在条件不经常变化的情况下使用,因为每次条件变化都会导致 DOM 的重新渲染和销毁,可能会带来一定的性能开销。
    • v-show:适合在条件频繁变化的情况下使用,因为元素始终存在于 DOM 中,只是通过 CSS 控制显示或隐藏,性能开销较小。
  3. 适用场景:

    • v-if:适用于条件渲染的元素可能永远不会显示,或者条件变化不频繁的场景。
    • v-show:适用于条件渲染的元素需要频繁切换显示和隐藏的场景。

示例代码解析

  • v-if 示例:

    • 当 isVisible 为 true 时,<view> 元素会被渲染到 DOM 中。
    • 当 isVisible 为 false 时,<view> 元素会从 DOM 中移除。
  • v-show 示例:

    • 无论 isVisible 为 true 还是 false,<view> 元素始终存在于 DOM 中。
    • 当 isVisible 为 true 时,<view> 元素会显示;当 isVisible 为 false 时,<view> 元素会隐藏(通过 display: none)。

总结

  • 使用 v-if 时,元素会根据条件动态地添加到 DOM 或从 DOM 中移除。
  • 使用 v-show 时,元素始终存在于 DOM 中,只是通过 CSS 控制其显示或隐藏。

根据具体场景选择合适的条件渲染方式,可以有效提升应用的性能。