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 identity (tham chiếu) của đối tượng; mỗi đối tượng duy nhất có key riêng. UniqueKey luôn tạo identity 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 đó làm mất tác dụng giữ state.