Flutter: Stateful 挂件 vs Stateless 挂件
Flutter
一切皆挂件。如果你想开发一个应用,首先,你得知道你需要使用哪种挂件。每个挂件都有它的状态。
状态是什么?
状态就是在构建小挂件时可以同时读取信息,并且可能在运行时更改信息。简而言之,我们可以说 State
定义了 Widget
的当前属性。
继承 Stateful
挂件的类是不可变的,但是 State
是可变的。
不可变的类 意味着一旦对象被创建,我们不可以改变它的内容。可变的类 是指一旦它被创建,我们还是可以更改它内部的状态。
应用 Stateful 挂件的步骤
- 通过继承
StatefulWidget
去创建一个类,然后在createState()
方法中返回状态 - 创建
State
类挂件可能在运行时候更改它的值 - 在
State
类中,应用build()
方法 - 调用
setState()
方法。setState()
方法实际上是重绘挂件。
代码示例
应用 Stateless 挂件的步骤
- 通过继承
StatelessWidget
去创建一个类 - 为挂件创建一个
build()
方法,在个关键在运行时不更改其内容 build()
方法中返回挂件
代码示例
完整的代码和输出
``` import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: Home(), ); } }
class Home extends StatefulWidget { @override _HomeState createState() => _HomeState(); }
class _HomeState extends State
class Greet extends StatelessWidget { @override Widget build(BuildContext context) { return RaisedButton( child: Text("Nice to meet you"), ); } } ```
本文是译文,采用意译的方式。原文链接 http://levelup.gitconnected.com/flutter-stateful-widget-vs-stateless-widget-c7baf0a3bbc1
- 前端开发中 5 个很赞的资源
- 懂点心理学 - 马太效应
- Flutter 构建一个 todo list 应用
- Dart 知识点 - 数据类型
- Dart 知识点 - 混入 Mixin
- Dart 知识点 - 集合 List, Set, Map
- Flutter - 使用 push(), pop() 和路由进行导航
- Dart 知识点 - 面向对象基础
- Flutter: Stateful 挂件 vs Stateless 挂件
- Flutter 实现登录 UI
- Dart 知识点 - 抽象类和接口
- 自 2020 年以来全球的开源商业化软件融资情况
- IstioCon 2022 回顾及录像、PPT 分享
- 网页实现 1CM 物理长度
- Flutter 开发出现的那些 Bugs 和解决方案「持续更新... 」
- 仿写新闻客户端
- Beyond Istio OSS —— Istio 服务网格的现状及未来
- 在外企的工作生活「年中总结」
- 如何在 Istio 中集成 SPRIRE?
- Javascript尾递归编程