provider는 많은 리스너를 가질 수 있고, 다른 provider를 구독해 스스로 리스너가 될 수도 있다.
ref.watch()
, ref.listen()
은 리스너를 등록할 수 있게 해 주며 첫 번째 리스너가 등록될 때 프로바이더의 상태가 초기화된다. (ref.read()
는 일회성 읽기만 가능하고 리스너 등록은 하지 않음.)
프로바이더를 autoDispose로 선언했는지 아닌지에 따라 다르다.
이 내용을 찾아 본 이유가 riverpod generator를 사용해 프로바이더를 생성하면 autoDispose가 디폴트라는 사실을 몰랐기 때문이다.
알 수 없는 이유로 자꾸만 초기화되는 상태값을 보며 답답했던 시간들아 이제는 안녕...
keepAlive로 상태를 유지시킬 수 있다.