国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Flutter部件內部狀態管理小結之實現Vue的v-model功能

2024-05-06 15:38:04
字體:
來源:轉載
供稿:網友

Flutter部件內部狀態管理

本文是 Flutter 部件內部狀態管理的小結,從部件的基礎開始,到部件的狀態管理,并且在過程中實現一個類似 Vue 的 v-model 的功能。

widget 基礎

widget(部件)

如 React 里萬物皆組件, Java 里萬物皆對象, Flutter 里,能看到的一切都是 widget(部件),如按鈕、文本框等等。

Flutter 內部已經為我們做了一些基礎的 widget ,例如:

Text : 這個就是一個文本部件,里面用于放置文本 Row , Column : 行列布局部件 Container : 可以理解為 HTML 里的 div

狀態

狀態可以理解為 widget 內擁有的成員變量

無狀態 widget

無狀態是指該成員變量不可改變,即使用 final 修飾符,為常量,創建無狀態組件步驟如下:

創建一個類繼承 StatelessWidget

實現 build 方法(類比寫 HTML + CSS )

import 'package:flutter/material.dart';class StateLessDemoWidget extends StatelessWidget { /// 如果定義非final修飾的成員變量,會提示 /// This class (or a class which this class inherits from) is marked as '@immutable', but one or more of its instance fields are not final: StateLessDemoWidget.listInde /// int [listIndex]; @override Widget build(BuildContext context) { return Container(); }}

有狀態 widget

有狀態則是指該 widget 內部的成員變量可以不使用 final 修飾符,并通過 setState() 方法改變成員變量的值時,引起 widget 的狀態改變并重繪(例如文本框綁定變量A,通過改變變量A修改文本框的值,這里的變量A可以理解為可變狀態)

有狀態 widget 通過實現 StatefulWidget 和 State 兩個子類實現,步驟如下:

創建一個 Widget 類,繼承 StatefulWidget
創建一個繼承 State 的類
在 State 類里創建狀態(成員變量),和實現 build 方法(畫界面)
import 'package:flutter/material.dart';/// 創建一個繼承[StatefulWidget]的widget類/// 這個類的效果類似收藏,有個空心的愛心圖標/// 點擊一下愛心填充紅色,再點擊一次就取消填充class FavoriteWidget extends StatefulWidget { @override _FavoriteWidgetState createState() => _FavoriteWidgetState();}/// [State]類,FavoriteWidget的具體實現/// 包含一個狀態[_isFavorited]class _FavoriteWidgetState extends State<FavoriteWidget> { bool _isFavorited = true; @override Widget build(BuildContext context) { return Row( mainAxisSize: MainAxisSize.min, children: [ Container( padding: EdgeInsets.all(0), child: IconButton( /// [_isFavorited] 為 true 時使用圖標 Icons.star 否則使用 Icons.star_border icon: (_isFavorited ? Icon(Icons.star) : Icon(Icons.star_border)), color: Colors.red[500], /// 當點擊時,改變狀態 onPressed: _toggleFavorite, ), ), ], ); } /// 改變[_isFavorited]的狀態 void _toggleFavorite() { setState(() { if (_isFavorited) { _isFavorited = false; } else { _isFavorited = true; } }); }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 大田县| 长泰县| 宁明县| 西安市| 顺昌县| 资阳市| 缙云县| 施秉县| 南充市| 宜兰市| 东海县| 洱源县| 同江市| 赤水市| 徐州市| 桦南县| 淮南市| 潜山县| 陆丰市| 邵武市| 农安县| 巴彦淖尔市| 铁力市| 建水县| 玛沁县| 达孜县| 洱源县| 长治市| 阳朔县| 凤庆县| 洮南市| 繁昌县| 庆元县| 怀来县| 望城县| 元朗区| 屯昌县| 五原县| 威信县| 青岛市| 彭泽县|