Middle
Flutterде immutable объекттер кандайча колдонулат?
sobes.tech AI
AIден жооп
Flutterде иммуттабельдүү объекттер (мисалы, виджеттер) UI кайра чагылдыруу механизминде борбордук роль ойнойт.
Ключдүү аспектилери:
- Ички кайра чагылдыруунун эффективдүүлүгү: Flutter виджеттердин дарагында салыштырып, алардын касиеттеринин өзгөрбөгөндүгүн аныктай алат. Эгер ата-эненин виджети өзгөрбөсө, анын балдары, иммуттабельдүү виджеттер, дагы кайра чагылдырбоого мүмкүнчүлүк алат, бул иштөө ылдамдыгын жакшыртат.
- Болжолдуу: Виджеттің касиеттеринин өзгөрбөстүгү анын абалынын аныкталгандыгына алып келет. Бул ката кетирүүнү жана маалымат агымын түшүнүүнү жеңилдетет.
- Туташтыксыздык: Иммуттабельдүү объекттер өзгөртүлө албайт, ошондуктан алар автоматтык түрдө туташтыксыз. Бул асинхрондук чөйрөдө маанилүү, анда бир нече поток маалымат менен иштейт.
- Жаңы абалды түзүү: Маалымат өзгөртүлгөндө, мурунку объектти өзгөртүүнүн ордуна, жаңы виджет же абал объектин түзүү керек.
Иммуттабельдүү StatelessWidget виджети түзүү мисалы:
import 'package:flutter/material.dart';
class ImmutableWidget extends StatelessWidget {
final String text; // Аягына жеткен талаа - түзүлгөндөн кийин иммуттабельдүү кылат
const ImmutableWidget({Key? key, required this.text}) : super(key: key);
@override
Widget build(BuildContext context) {
return Text(text);
}
}
StatefulWidget ичинде өзү иммуттабельдүү, бирок анын байланышкан объекти State мутабельдүү жана өзгөрмө абалды сактайт. Абалды өзгөрткөндө, setState() чакырылат, ал фреймворкко виджеттерди кайра курууга билдирет. Жаңы касиеттер менен жаңы виджет түзүлөт, бирок эски виджет жаңы менен салыштырылып, дарактын минималдуу өзгөрүүлөрү аныкталат.