Middle
Flutter-də dəyişməz obyektlər necə istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Flutter-da, dəyişməz obyektlər (məsələn, vidjetlər) istifadəçi interfeysinin yenidən çəkilmə mexanizmdə mərkəzi rol oynayır.
İstifadənin əsas aspektləri:
- Yenidən çəkilmə effektivliyi: Flutter, element ağacında vidjetləri səmərəli şəkildə müqayisə edə bilər, çünki onların xüsusiyyətləri yaradıldıqdan sonra dəyişmir. Əgər valideyn vidjetin xüsusiyyətləri dəyişməyibsə, onun uşaqları, yəni dəyişməz vidjetlər də yenidən çəkilməyə ehtiyac duymur, bu da performansı optimallaşdırır.
- Əvvəlcədən görmə: Vidjetin xüsusiyyətlərinin dəyişməzliyi səbəbindən, onun vəziyyəti hər zaman yaradılma anında aydın şəkildə müəyyən edilir. Bu, səhvlərin tapılmasını və məlumat axınının başa düşülməsini asanlaşdırır.
- Axın təhlükəsizliyi: Dəyişməz obyektlər dəyişdirilə bilmədiyi üçün, onlar təbii olaraq axş üçün təhlükəsizdir. Bu, çoxlu iş parçaları ilə məlumatların qarşılıqlı əlaqədə olduğu asinxron mühitlərdə vacibdir.
- Yeni vəziyyətin yaradılması: Məlumatlar dəyişdikdə, mövcud obyektin dəyişdirilməsi yerinə, yenilənmiş xüsusiyyətlərlə yeni vidjet və ya vəziyyət obyektinin yaradılması həyata keçirilir.
Dəyişməz vidjet nümunəsi StatelessWidget:
import 'package:flutter/material.dart';
class ImmutableWidget extends StatelessWidget {
final String text; // Son sahə - onu yaradıldıqdan sonra dəyişməz edir
const ImmutableWidget({Key? key, required this.text}) : super(key: key);
@override
Widget build(BuildContext context) {
return Text(text);
}
}
StatefulWidget-də, vidjet özü dəyişməzdir, amma ona bağlı obyekt State dəyişkəndir və dəyişkən vəziyyəti saxlayır. State-də vəziyyət dəyişdikdə, setState() çağırılır və framework-ə bildirilir ki, yeni vəziyyətlə vidjetlər yenidən qurulmalıdır. Yenilənmiş xüsusiyyətlərlə yeni vidjet nümunəsi yaradılır, köhnə vidjet isə yeni ilə müqayisə edilir və element ağacında minimal dəyişikliklər müəyyən edilir.