Flutter setState(){}浅析

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的渲染里详细讲解。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Content: Flutter框架概况发展概述发展历史框架特性框架结构 快速入门安装Flutter在Mac OS...
    EchoZuo阅读 6,512评论 3 54
  • 1️⃣Flutter中的UIView相当于什么? 在iOS中,您在UI中创建的大部分内容都是使用视图对象完成的,这...
    盖世英雄_ix4n04阅读 1,260评论 0 1
  • 很有幸认识了你,虽在大三的最后一学期,流年似水,一晃一学期结束,也意味着要离开你。 第一次相识在《精神护理学》的课...
    小韩不止聊健康阅读 383评论 0 1
  • 挣扎了这么久 还是你给我做出了答案 因为太在乎 因为没有资格 我变的不敢发表自己内心的想法 我能说的都说了 不...
    木易0103阅读 149评论 0 0
  • 最近D姑娘跟我说,她感觉现在的生活并不是她喜欢的,也不是她想要的。她想要把日子过成诗和远方,却不知怎么的过成...
    汤圆的丸子头阅读 226评论 0 0