Flutter页面状态保留策略

目的: 防止每次点击底部按钮都进行一次页面渲染和网络请求

1. 使用IndexedStack

简单,只需要把被渲染的组件外部套一层IndexedStack即可

缺点: 在应用启动的时候,所有需要保存状态的页面都会直接被渲染,保存起来. 对性能有影响

2. 使用PageController

实现较为复杂,但是不用应用启动就全部加载

PageController实现页面状态保留步骤:

  1. 将要进行状态保留的页面使用PageView包裹,其中需要最少两个参数:controller和children. children就是要渲染的页面. controller需要自定义
  2. 自定义controller
  3. 在被渲染的页面中with AutomaticKeepAliveClientMixin 类, 重写 get方法进行配置,build方法中调用super.builder(context)


    ps: 前两步骤是在外层组件中设置的,如:foot组件Tabs, 在Tabs中渲染页面,如Home. 第三步则是在Home中完成
相关推荐
Gizzap_Tech8 分钟前
双语内容审阅台怎么做?用内容指纹保留核验记录
javascript
SuperHeroWu721 分钟前
ArkGenie 的技术原理:从一段 SSE 到一个可交互 Surface
开发语言·php·交互
萝卜白菜。38 分钟前
TongWeb生产环境配置规范之三:优化TongWeb启动速度
java·开发语言
企业解惑小助手40 分钟前
上网行为监控软件有哪些?部署后终端卡顿、断网、审计缺失怎么办?一份完整故障排查手册
开发语言·php
chicken_h1 小时前
【无标题】
flutter·打包
利威尔xu1 小时前
万字详解 | Go 进阶(二)GC 三色标记:STW 从 10ms 压到 40μs,1 次 Full GC 让线上 P99 抖了 3 秒
开发语言·后端·性能优化·golang·高并发
坤坤子吖1 小时前
C++继承:继承的基本用法与访问规则
开发语言·c++·笔记·学习
紧跟先前的步伐1 小时前
Go AI Agent 实战 12|HTTP 状态码、API 错误处理与日志
开发语言·人工智能·http·ai·golang
Demon--hx1 小时前
C++ 文件流:理解 ifstream/ofstream 与 RAII 机制
开发语言·c++
纪念 2291 小时前
C++ stack和queue
开发语言·c++