ValueKey xác định widget bằng một giá trị cụ thể; hai widget cùng giá trị được coi là giống nhau. ObjectKey dùng tham chiếu danh tính của đối tượng; mỗi đối tượng duy nhất có key riêng. UniqueKey luôn tạo danh tính duy nhất, hữu ích khi muốn mỗi instance khác biệt.
Tránh tạo UniqueKey trong build() — điều đó phá vỡ mục đích bảo tồn state.
ValueKey identifies widgets by a specific value. ObjectKey uses an object's reference identity. UniqueKey always creates a unique identity.
Avoid creating UniqueKey in build() — it defeats state preservation.