Seminar Week 3 Summary
本页目录· 61 条
- 本周在课程中的位置
- Jetpack Compose 与声明式 UI(Declarative UI)
- 什么是声明式 UI
- 可以这样理解
- 为什么这种方式重要
- 与命令式 UI 的对比
- 核心公式
- Recomposition(重组)
- 什么是重组
- 为什么它高效
- 与上周内容的关系
- 什么会触发重组
- 复习抓手
- State(状态)与 MutableState(可变状态)
- 关键前提:Compose 不会自动观察所有变量
- MutableState 是什么
- remember 与 mutableStateOf 的分工
- 可以这样理解
- 一个很容易忽略的点
- 三种常见声明方式
- 三种写法对比
- Option 1:为什么要写 .value
- Option 2:为什么更常用
- val 和 var 在这里怎么理解
- Lambda 中的 it
- 对象类型状态:为什么“改字段”不一定会刷新
- 核心结论
- 典型问题
- 更推荐的更新方式
- 复习要点
- rememberSaveable 与 ViewModel
- remember 的边界
- rememberSaveable 的作用
- ViewModel 的定位
- 三者对比
- 课件给出的补充区别
- 课堂补充:状态提升(State Hoisting)
- 这部分不是本页主线,但老师在课堂视频中额外强调
- 为什么这么做
- 一个记忆句
- Lazy Lists(惰性列表)
- 为什么需要 Lazy Lists
- “Lazy” 的真正含义
- 主要组件
- 为什么 LazyColumn 更常见
- LazyColumn 的写法与思路
- DSL(领域特定语言)风格
- item {} 和 items {} 的区别
- 列表渲染的基本例子
- mutableStateListOf():为什么列表要单独处理
- 作用
- 为什么它重要
- 可以这样理解
- LazyColumn 的 4 类典型交互
- 1. 显示列表
- 2. 选择某一项
- 3. 删除某一项
- 4. 新增某一项
- 本周最容易混淆的点
- 复习建议
- Summary
ChatGPT 说
本周在课程中的位置
- 本周是 Jetpack Compose Part II,承接上周对 Compose 基本组件与界面渲染流程的介绍。
- 上周更偏向“怎么写 composable”;本周开始进入更核心的“为什么界面会自动更新”。
- 这部分内容直接服务于后续应用开发:输入框、菜单、按钮、动态列表等交互,都依赖状态驱动的 UI 思维。
- 老师在课上也强调:到本周为止,Jetpack Compose 基础 UI 实现的核心内容基本到位,后续可以更正式地进入应用页面设计与实现。
Jetpack Compose 与声明式 UI(Declarative UI)
什么是声明式 UI
- Jetpack Compose 是一个声明式 UI 框架:开发者描述“界面此刻应该呈现什么”,而不是逐步命令系统“先创建什么、再修改什么、最后刷新什么”。
- Compose 会根据当前状态,重新调用可组合函数(Composable Functions),从而得到新的界面结果。
可以这样理解
- 命令式(Imperative UI)关注的是:怎么做
- 声明式(Declarative UI)关注的是:结果应该是什么
为什么这种方式重要
- UI 代码更贴近最终界面结构,可读性更好。
- 不需要频繁手动写“刷新界面”的样板代码。
- 更适合处理高交互场景,例如文本输入、点击、菜单选择、列表增删改等。