这一篇让你彻底弄明白 Flutter 的 InheritedWidget 局部刷新机制

前言

上一篇我们从源码角度分析了 setState 的过程,从而了解到为什么 setState 方法被调用的时候会重新构建整个 Widget 树。但是,Widget 树的重新构建并不意味着渲染元素树也需要重新构建,事实上渲染树只是做了更新,而不一定是移除后在渲染。

但是,我们的 ModelBinding类也是使用了 setState 进行状态更新的,为什么它的子组件没有重新构建,而只是更新了依赖于状态的子组件的 build 方法呢?除了使用了内部的 InheritedWidget包裹了子组件外,其他和普通的 StatefulWidget 没什么区别。如前面两篇分析 从InheritedWidget了解状态管理一样,差别就是在这个 InheritedWidget上。本着技术人刨根问底的精神,本篇就来看一下 InheritedWidget 在调用 setState的时候究竟有什么不同。

刨根问底

知其然,知其所以然。在阅读本篇文章前,如果对 Flutter 的状态管理不是特别清楚的,建议阅读本人前几篇文章了解一下背景。

InheritedWidget与 StatefulWidget 的区别

首先,Inh

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

岛上码农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值