聊一聊Flutter的setState()
2024-08-26 13:19:24
Flutter 里面包含两种widget 一种可变的,一种不可变的;
在可变的widget中可以使用 setstate(){} 函数。
官方也给出了例子:
_onClick(){
setState(){
title = "123";
}
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Text("$title");
}
改变title的内容,视图也会跟着改变。类似响应式编程?真的吗?
我们仔细看看:
我们改改试试遮掩怎么样?
_onClick(){
title = "123";
setState(){
}
}
会不会发生改变呢?
YES.
WHY?
这需要了解的有flutter的渲染机制了,她的渲染机制用的是skia,和web的渲染是一样的,非常个轻量化和快速。
setState(){}的调用时吧视图重新绘制了一遍,但是并不是把整个视图diss掉再从新绘制。而是调用了build方法,绘制只是绘制不一样的地方,这段知识会在flutter的渲染里详细讲解。
最新文章
- 史上最全的Ajax基础详解
- codeforces 341d (树状数组)
- [转] 控制Arduino的利器-Windows Remote Arduino
- How Tomcat works — 六、tomcat处理请求
- PHP Deprecated: Comments starting with '#' are deprecated in *.ini 警告解决办法
- java 实例之杨辉三角
- linux打包压缩命令汇总
- smali 语法之if语句
- Java Junit4测试功能
- 如果ie6跳转
- lua 安装配置
- oracle 解析json格式
- pyhton中的Queue(队列)
- 使用筛选器特性标记方法解决webapi 跨域问题
- R语言学习笔记︱Echarts与R的可视化包——地区地图
- 关于tomcat和jetty的乱码问题
- SSM-Spring-22:Spring+Mybatis+JavaWeb的整合
- shell test条件判断
- Eclipse远程连接Hadoop
- php随笔10-thinkphp 3.1.3 模板继承 布局