본문 바로가기

study/flutter

플러터(flutter) 비동기에서 퓨처함수 한번만 실행하기(asyncMemoizer.runOnce())

asyncMemoizer.runOnce()를 이용하면 stateful 위젯에서 변경이 생겻을 때만 변화가 일어난다.

변경이 생기지 않았을때는 기존 로컬에 있는 데이터를 가져와서 기존 데이터를 뿌려주기 때문에 성능에 좋다.

 

만약 asyncMemoizer.runOnce()를 사용하지 않으면 stateful 상황에서 변화가 생기든 생기지 않든 다시 build를 실행해 기존에 있던 데이터가 아닌 다시 데이터를 가져옴으로 성능에 좋지 않다.

 

ayncMemoizer.runOnce()를 사용한 함수이다. firebase에서 데이터를 가져오는것은 한번만 실행을 하면 되기때문에 ayncMemoizer.runOnce()를 이용한다.

 

Future를 이용한 함수를 사용할때에는 FutureBuilder 위젯을 사용한다.

FutureBuilder 위젯을 사용할때에는 builder: 와 future: 속성이 들어가야한다.

builder: 부분엔 UI관련

future: 부분엔 Future 함수를 이용한 함수를 넣으면 되는것 같다.