Flutter 위젯 키 💫 🌌 ✨
위젯 키
State
veElement
problemlerinin en kolay çözümünü sunayım: 열쇠.Koleksiyonlarda widget'larla çalışırken, onlara key vermek, Flutter'n aynı türden iki widget'ın gerçekte ne zaman farklı olduğunu bilmesine yardımcı olur. 그러나 이 도구는 어린이용 위젯을 위한 도구입니다. 당신은 Flutter'a fazladan bir bilgi vermek idealdir에서 당신이 원하는 것을 찾을 수 있을 것입니다.
_buttons = <Widget>[
FancyButton(
key: _buttonKeys.first, //Flutter'ın bu widget'ı aynı türdeki widget'lar arasında tanımlamasını sağlayan Unique key
child: Text(
"Decrement",
style: TextStyle(color: Colors.white),
),
onPressed: _decrementCounter,
),
FancyButton(
key: _buttonKeys.last,
child: Text(
"Increment",
style: TextStyle(color: Colors.white),
),
onPressed: _incrementCounter,
),
];
Anahtar(key) türleri ve bunların ne zaman kullanılacağı:
Flutter da birkaç tür anahtar vardır:
ValueKey
, ObjectKey
, UniqueKey
, GlobalKey
, ve PageStorageKey
ve bir şekilde ilişkilidir.PageStorageKey
, LocalKey
'in bir alt sınıfı olan ValueKey<T>
'nin bir alt sınıfıdır. ValueKey<T>
이세, Key
'in bir alt sınıfıdır ve ObjectKey
, UniqueKey
ve ayrica LocalKey
나는 uygular.Key'ler iki gruba ayrılır: 글로벌 및 로컬
글로벌 키
Global anahtarlar, state'i yönetmek ve widget öğelerini widget ağacı çevresinde taşımak için kullanılır. Örneğin, bir checkbox görüntüleyen tek bir widget öğesinde bir GlobalKey'e sahip olabilir ve widget öğesini birden çok sayfada kullanabilirsiniz. 그러나 프레임워크 'e bu widget öğesinin aynı örneğini(instance) kullanmasını söyler. 당신은 체크박스에 체크박스를 두지 않고 다른 방법을 사용할 수 있습니다. 체크박스 A는 보안 유지 B는 보안 유지를 의미합니다.
State'i yönetmek için global anahtarların kullanılmasının tavsiye edilmediğini (Flutter ekibi tarafından) not etmek önemlidir. 글로벌 anahtarlar sık kullanılmaz ve performansı etkiler; 로컬 anahtarları kullanmak daha yaygındır.
로컬 키
로컬 anahtarların tümü, anahtarı oluşturduğunuz build context'e göre kapsamlandırılmış olmaları bakımından benzerdir. Hangisinin kullanılacağına karar vermek, duruma bağlıdır:
✨
ValueKey<T>
Değer anahtarları, anahtar eklediğiniz nesne bir tür constant, unique property'e sahip olduğunda en iyisidir. Örneğin, bir todo list uygulamasında, bir todo'yu görüntüleyen her widget'n muhtemelen sabit ve benzersiz (unique) bir Todo.text
나는 바르디르.✨
ObjectKey
Nesne anahtarları, aynı türden ancak property value'ları (özellik değerleri) farklı olan nesneleriniz olduğunda mükemmeldir. Bir e-ticaret uygulamasında "제품"adlı bir nesne düşünün: iki ürün aynı başlığa sahip olabilir (iki farklı satıcı bilgisayar satabilir). Ve bir satıcının birden fazla urünü olabilir. Bir ürünü benzersiz yapan, ürün adı ile satıcı adının birleşimidir.다음은 ObjectKey'e에 대한 설명입니다(문자 그대로).
Key key = ObjectKey({
"seller": product.seller,
"product": product.title
})
✨
UniqueKey
Bir koleksiyonun alt öğelerine anahtar ekliyorsanız ve alt öğeler oluşturulana kadar değerlerini bilmiyorsa, unique(benzersiz) anahtarlar kullanılabilir. Örnek uygulamada, ürün kartları oluşturulana kadar renklerini bilmezler, bu nedenle unique key iyi bir seçenektir.✨
PageStorageKey
Bir scroll'un konumu gibi sayfa bilgilerini depolamak için kullanılan özel bir anahtardır.아니다:
Anahtarların, özellikele global anahtarların kullanılması genellikle gerekli değildir veya önerilmez. Global anahtarlar neredeyse her zaman bir tür global state yönetimi ile değiştirilebilir. 이 시스템은 PageStorageKey에 저장되어 있고 저장 장치가 없습니다.
리소스: Flutter in Action 3장
Reference
이 문제에 관하여(Flutter 위젯 키 💫 🌌 ✨), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gulsenkeskin/flutter-widget-keys-1hfl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)