《uni-app跨平台开发完全指南》- 08 - 条件渲染与列表渲染

引言

在这里插入图片描述
上一章我们深入探讨了uni-app中的数据绑定与事件处理,为应用注入了灵魂。今天,我们将直面前端开发中最常见、也最考验性能的两大场景:条件渲染列表渲染。你是否曾为页面的卡顿而烦恼?是否对v-ifv-show的选择感到困惑?本文将带你从全面掌握打造丝滑流畅的uni-app应用。

一、 条件渲染

在应用开发中,我们经常需要根据数据的状态来决定显示或隐藏某些部分。比如,用户登录后显示用户信息,否则显示登录按钮;数据加载时显示骨架屏,加载完成后渲染真实内容。

在uni-app(基于Vue.js)中,我们主要使用 v-ifv-show 这两个指令来实现条件渲染。二者的底层实现机制有着天壤之别!

1.1 v-if

v-if 是“真正”的条件渲染,因为它会确保在切换过程中,条件块内的事件监听器和子组件适当地被销毁和重建。

核心原理:

<template>
  <view>
    <!-- 条件为 true 时,view 才会被创建并插入DOM -->
    <view v-if="isVisible" class="conditional-view">
      我是v-if渲染的内容!
    </view>
    
    <button @tap="toggleVisible">切换显示 (v-if)</button>
  </view>
</template>

<script>
export default {
     
     
  data() {
     
     
    return {
     
     
      isVisible: false 
    };
  },
  methods: {
     
     
    toggleVisible() {
     
     
      this.isVisible = !this.isVisible; 
      // 每次切换,v-if 控制的元素都会经历 创建/销毁 的过程
    }
  }
};
</script>

v-if 的生命周期:

初始状态
isVisible 为 true?
元素不存在于DOM
不占用DOM资源
等待状态切换
创建元素节点
初始化组件
绑定事件监听器
插入DOM树
渲染显示
触发toggle事件
销毁流程开始
移除事件监听
销毁组件实例
从DOM中移除

原理说明:

  • 销毁与重建:当 v-if 的条件变为 false 时,Vue会完全销毁该元素及其子组件,释放内存。当条件再次变为 true 时,Vue会重新创建一个全新的元素和组件实例,并执行其完整的生命周期钩子(如 created, mounted)。
  • 惰性渲染v-if 是“惰性”的。如果在初始渲染时条件为 false
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QuantumLeap丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值