Sobes.tech
Junior

Ինչու՞ են Flutter-ի widget-ները կոչվում թեթև կոմպոնենտներ։

sobes.tech AI

Պատասխան AI-ից

Flutter-ում վիդջեթները նկարագրում են միայն UI տարրերի ընթացիկ կոնֆիգուրացիան, ոչ թե ինքնին տարրի օրինակը: Երբ վիճակը փոխվում է, վիդջեթները նորից կառուցվում են, ստեղծելով նոր օրինակ, բայց Dart VM-ը արդյունավետ կերպով համեմատում է հին և նոր վիդջեթները և թարմացնում միայն այն մասերը ռենդերային ծառի, որոնք իսկապես փոխվել են: Սա թույլ է տալիս խուսափել թանկարժեք գործողություններից՝ բնիկ UI տարրեր ստեղծելու և հեռացնելու, և դարձնում է դրանք "հակակշռային":

  • Անփոփոխություն: Վիդջեթները անփոփոխ են, ինչը հեշտացնում է նրանց համեմատությունը և վերօգտագործումը:
  • Հայտարարական մոտեցում: UI-ի նկարագրությունը վիդջեթների տեսքով հայտարարական է, ինչը ապահովում է բարձր կատարողականություն փոփոխությունների ժամանակ:
  • Արդյունավետ diffing ալգորիթմ: Flutter-ը օգտագործում է օպտիմալացված ալգորիթմ՝ վիդջեթների արագ համեմատության և UI-ի թարմացման համար:

Օրինակ՝ պարզ տեքստային վիդջեթ ստեղծելու համար:

// Վիդջեթ օբյեկտի ստեղծում
Text(
  'Բարև, աշխարհ!', // Վիդջեթի կոնֆիգուրացիա
  style: TextStyle(fontSize: 20.0),
);

Տեքստը փոխելու դեպքում կստեղծվի նոր Text օբյեկտ՝ նոր կոնֆիգուրացիայով, բայց ռենդերումը արդյունավետորեն թարմացվում է։