美文网首页FlutteriOS 开发相关
Flutter setState(){}浅析

Flutter setState(){}浅析

作者: wangyongyue | 来源:发表于2018-10-29 16:06 被阅读106次

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

    相关文章

      网友评论

        本文标题:Flutter setState(){}浅析

        本文链接:https://www.haomeiwen.com/subject/xfmxtqtx.html