# Keys

  • Keys preserve state when they move around the widget tree.
  • Most of the time you don't need keys.
  • But if you're moving around same type of widgets that hold some state, it's key time .
  • Example is a to do list.
  • Also, the news app from flutter boring show.
  • stateful하고 동일한 위젯이 여러개인 경우에 필요하다.
  • key는 유지하고

작동방법

  • 모든 위젯에 맞춰 플러터는 element를 만든다.

  • element tree에는 위젯의 타입과 children에 대한 정보만 담긴다. 즉, 구조에 대한 정

    valuekey, objectkey, uniquekey 로 종류가 나뉜다.

    단순히 필드만으로 unique해질것같으면 그 필드에 value쳐서 밸류키 쓴다.

    필드 여러개 조합해야되면 objectkey,

    그것도 안되겟으면 uniquekey로 한다.

    쓰지않아야하는건 randomnumber. rebuild할때마다 키값이 바뀌어서 의미가 없다.

    PageStorageKey는 특별한 키로 페이지 위치를 기억해준다.

    GlobalKey는 widget이 state를 잃지 않고 parent를 바꾸던가 다른 위젯트리에서 위젯에 대한 정보를 얻을때 쓸 수 있다. 그렇지만 이거보다는 provider, bloc, redux가 나을 가능성이 크다.

    보만 갖는다.

  • key가 있으면 key까지 추가로 체크해준다 .