zoukankan      html  css  js  c++  java
  • 聊一聊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的渲染里详细讲解。

  • 相关阅读:
    dp思维
    快速幂+地推
    背包问题找物品
    石子合并问题
    hihocoder 1580 Matrix(北京icpc2017网络赛)
    ACM对拍造数据
    主席树学习小结(POJ 2104)
    莫队算法入门 BZOJ 2038
    hdu 2586
    Kattis
  • 原文地址:https://www.cnblogs.com/gloryhope/p/11309313.html
Copyright © 2011-2022 走看看