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

相关文章:

  • 2021-06-26
  • 2021-08-23
  • 2022-01-20
  • 2021-12-30
  • 2021-11-23
  • 2021-12-06
  • 2021-12-10
  • 2021-09-04
猜你喜欢
  • 2022-12-23
  • 2022-01-16
  • 2021-07-28
  • 2021-04-16
  • 2021-12-28
  • 2022-12-23
  • 2021-12-22
相关资源
相似解决方案