一、先给你一张全局图(核心认知)
你现在只需要记住这张表:
| 维度 | mixin | 继承 | 组合 |
|---|---|---|---|
| 本质 | 能力拼装 | 类型扩展 | 对象协作 |
| 是否强耦合 | ❌ | ✅ | ❌ |
| 是否支持多重 | ✅ | ❌ | ✅ |
| 是否推荐 Flutter 使用 | ✅ 强烈推荐 | ⚠️ 少用 | ✅ |
| 典型场景 | 页面能力、工具能力 | Widget 体系 | Service / Repo |
一句话总结:
Flutter 的架构核心 = 组合 + mixin,而不是继承
二、mixin 在 Flutter 中到底解决什么问题?
Flutter 项目常见痛点
BasePage 越写越大
所有页面被迫继承一堆方法
一个小改动影响所有页面
逻辑无法拆分、复用困难
mixin 的本质作用
✅ 把“横向能力”从“纵向继承”中解耦出来