Flutter之狀態(tài)管理

Flutter的狀態(tài)管理有:
1、State:Flutter自帶的悉稠,開發(fā)耦合度高宫蛆,不推薦
2艘包、fish_redux:阿里開源的的猛,中型和大型應(yīng)用,實(shí)力有保證
3想虎、provide:Google官方的卦尊,但是很久沒(méi)更新了,官方推薦了provider
4舌厨、provider:InheritedWidget的封裝 岂却,Google推薦,目前更新活躍裙椭。
我們選擇provider開發(fā)我們的應(yīng)用:

provider

Provider 是用于提供數(shù)據(jù)躏哩,無(wú)論是在單個(gè)頁(yè)面還是在整個(gè) app 都有它自己的解決方案,我們可以很方便的管理狀態(tài)揉燃。
下面將演示provider最新版4.1.2(2020年5月15日)
4.x 跟3.x有所不同扫尺,具體可https://github.com/rrousselGit/provider
目前網(wǎng)上大多數(shù)是3.x 及其以下的教程

注意

provider 4.x 在 Flutter v1.12.13+hotfix.9 穩(wěn)定版(2020年5月15日)上是不支持的;
剛好在2020年5月6日出了Flutter 1.17.0 穩(wěn)定版炊汤,是支持 provider 4.x 的正驻,而現(xiàn)在的最新穩(wěn)定版是 Flutter 1.17.1(2020年5月15日);下面我將使用最新穩(wěn)定版來(lái)開發(fā)抢腐。

環(huán)境

Flutter 1.17.1 + provider 4.1.2(2020年5月15日最新版)

一姑曙、 引入依賴

pubspec.yaml

dependencies:
  provider: ^4.1.2

二、創(chuàng)建狀態(tài)管理

創(chuàng)建 bli/provider/current_index_page.dart
current_index_page.dart 內(nèi)容如下:

import 'package:flutter/material.dart';

/// 當(dāng)前索引頁(yè)
class CurrentIndexPage with ChangeNotifier {
  int currentIndexPage = 0;

  void changeIndexPage(int newIdex) {
    currentIndexPage = newIdex;
    notifyListeners(); // 通知所有的監(jiān)聽器
  }
}

三迈倍、調(diào)用

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import './provider/current_index_page.dart';

void main() {
  runApp(
    MultiProvider(
      providers: [
        // 引入
        ChangeNotifierProvider(create: (_) => CurrentIndexPage()),
      ],
      child: MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  int _index; // 過(guò)渡值

  @override
  Widget build(BuildContext context) {
    // 初始化過(guò)渡值 _index=0
    _index = context.watch<CurrentIndexPage>().currentIndexPage;
    return new MaterialApp(
      title: 'Demo', // 設(shè)置 App 的標(biāo)題
      theme: new ThemeData(primaryColor: Colors.blue), // 設(shè)置主題顏色

      home: new Scaffold(
        body: new Center(
            child: new MaterialButton(
          color: Colors.blue,
          textColor: Colors.white,
          child: new Text(
              '點(diǎn)我 ${context.watch<CurrentIndexPage>().currentIndexPage}'), //訂閱 取值
          onPressed: () {
            ++_index;
            // 傳遞對(duì)象  →→→→ 調(diào)用狀態(tài)管理修改 當(dāng)前索引頁(yè)的值 currentIndexPage=_index
            context.read<CurrentIndexPage>().changeIndexPage(_index);
          },
        )),
      ),
    );
  }
}

運(yùn)行效果

GIF.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伤靠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子啼染,更是在濱河造成了極大的恐慌醋界,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件提完,死亡現(xiàn)場(chǎng)離奇詭異形纺,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)徒欣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門逐样,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人打肝,你說(shuō)我怎么就攤上這事脂新。” “怎么了粗梭?”我有些...
    開封第一講書人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵争便,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我断医,道長(zhǎng)滞乙,這世上最難降的妖魔是什么奏纪? 我笑而不...
    開封第一講書人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮斩启,結(jié)果婚禮上序调,老公的妹妹穿的比我還像新娘。我一直安慰自己兔簇,他們只是感情好发绢,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垄琐,像睡著了一般边酒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狸窘,一...
    開封第一講書人閱讀 50,021評(píng)論 1 291
  • 那天甚纲,我揣著相機(jī)與錄音,去河邊找鬼朦前。 笑死介杆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的韭寸。 我是一名探鬼主播春哨,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恩伺!你這毒婦竟也來(lái)了赴背?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晶渠,失蹤者是張志新(化名)和其女友劉穎凰荚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體褒脯,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡便瑟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了番川。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片到涂。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖颁督,靈堂內(nèi)的尸體忽然破棺而出践啄,到底是詐尸還是另有隱情,我是刑警寧澤沉御,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布屿讽,位于F島的核電站,受9級(jí)特大地震影響吠裆,放射性物質(zhì)發(fā)生泄漏伐谈。R本人自食惡果不足惜烂完,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衩婚。 院中可真熱鬧窜护,春花似錦效斑、人聲如沸非春。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奇昙。三九已至,卻和暖如春敌完,著一層夾襖步出監(jiān)牢的瞬間储耐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工滨溉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留什湘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓晦攒,卻偏偏與公主長(zhǎng)得像闽撤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脯颜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350