聊一聊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的渲染里詳細講解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM