Home Mobile Perbedaan Stateless dan Statefull Widget

Perbedaan Stateless dan Statefull Widget

0

Apa itu Stateless Widget?

Widget stateless adalah widget yang mendeskripsikan bagian dari antarmuka pengguna dengan membuat konstelasi widget lain yang mendeskripsikan antarmuka pengguna secara lebih konkret. Proses pembangunan berlanjut secara rekursif hingga deskripsi antarmuka pengguna benar-benar konkret.

Stateless widget berguna ketika bagian dari antarmuka pengguna gambarkan tidak bergantung pada apa pun selain informasi konfigurasi di obyek itu sendiri dan BuildContext dismana widget tersebut meningkat. Untuk komposisi yang dapat berubah secara dinamis, misalnya karena memiliki status clock-driven internal, atau bergantung pada beberapa status sistem, pertimbangkan untuk menggunakan StatefullWidget.

Contoh Code nya :

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return  new MaterialApp(
      title: 'Stateless Widget',
      home : new  Scaffold(
        body: new Container(
          color: Colors.blueAccent,
          child: new Container(
            color: Colors.lightGreen,
            margin: const
            EdgeInsets.all(30.0),
          ),
        ),
      )
    );
  }
}

Hasil running :

Apa itu Statefull Widget?

Widget stateful didefinisikan sebagai widget apa pun yang mengubah statusnya selama masa pakainya. Widget stateful berguna jika bagian dari antarmuka pengguna yang Anda gambarkan dapat berubah secara dinamis. Saat Flutter membuat StatefulWidget, itu membuat objek Status. Objek ini adalah tempat semua status yang bisa berubah untuk widget itu diadakan.

Konsep negara didefinisikan oleh dua hal:

  • Data yang digunakan oleh widget mungkin berubah.
  • Data tidak dapat dibaca secara sinkron saat widget dibuat.

Contoh code nya :

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}
class MyApp extends StatefulWidget{
  @override
    _appliacationState createState()=>
        _appliacationState();

  }

class _appliacationState extends State<MyApp>{
  String txt='';

  @override
  void initState(){
    txt ='klik tombol ini';
    super.initState();
  }
  void method1(){
    setState(() {
      txt='The text is changed';
    });
  }

  @override
  Widget build(BuildContext context) {
    // TODO : implement  build
    return new MaterialApp(
      title: 'Stateful Widget',
      home : new  Scaffold(
        body:  new Center(
          child: new RaisedButton(onPressed: ()
          {method1();}, child: new Text(txt),),
        ),
      )
    );
  }

}


Hasil running :