【Flutter Todo 实战】第七章:UI 组件详解

本章将详细介绍待办事项应用中的各个 UI 组件,帮助你理解 Flutter 界面是如何构建的。 7.1 主入口 main.dart void main() { WidgetsFlutterBinding.ensureInitialized(); // 设置首选方向(竖屏) SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); runApp(const TodoApp()); } class TodoApp extends StatelessWidget

· 5 min read

【Flutter Todo 实战】第六章:状态管理详解

6.1 什么是状态管理? 生活中的例子 想象你和室友们共用一个冰箱: * 没有状态管理:每个人自己记冰箱里有什么,有人买了牛奶但没告诉别人,结果大家都买了牛奶 * 有状态管理:冰箱上贴一张清单,任何人拿放东西都更新清单,大家看清单就知道冰箱里有什么 状态管理就是让应用中的数据(状态)能够被需要的地方访问和更新。 为什么需要状态管理? 在 Flutter 中,Widget 树是层级结构: MyApp └── HomeScreen ├── AppBar │ └── Title (需要显示任务数量) ├── TaskList │ ├── TaskItem (需要显示任务)

· 5 min read

【Flutter Todo 实战】第三章:Flutter 核心概念

在正式开始编写待办事项应用之前,我们需要理解 Flutter 的三个核心概念。这些概念是 Flutter 的基石,理解它们将帮助你更好地开发 Flutter 应用。 3.1 Widget(组件) 什么是 Widget? Widget 是 Flutter 中一切的基础。 在 Flutter 中,几乎所有东西都是 Widget。 想象一下你在搭积木: * 每一块积木就是一个 Widget * 你可以把小块积木组合成大的结构 * 整个应用就是一堆

· 5 min read
【Ubuntu】如何在Ubuntu 24.04上使用Fail2Ban阻止暴力攻击 Ubuntu

【Ubuntu】如何在Ubuntu 24.04上使用Fail2Ban阻止暴力攻击

Fail2Ban 是一个基于 Python 的工具,需要手动安装在系统上。它帮助保护系统免受网络相关的攻击,比如暴力破解。 当这种攻击发生时,Fail2Ban 会等待配置文件中声明的特定规则触发,然后采取必要的行动,比如封锁目标 IP 地址并记录事件。 根据配置文件中指定的规则,目标 IP 地址的封锁会被解除,这些配置文件以 "_conf_" 格式存储在 "_/etc/fail2ban/_" 路径下。

· 6 min read