v2.3.0
vxstate
VxState는 Flutter용 또 다른 상태 관리 솔루션입니다. Redux와 VueX에서 크게 영감을 받았습니다.
31좋아요 3.5천30일 다운로드160Pub 점수
AndroidiOSWebmacOSWindowsLinux
다른 상태 관리 솔루션
{"sdk":"flutter"}{"sdk":"flutter"}아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
VxState is a state management library built for Flutter apps with focus on simplicity. It is inspired by StoreKeeper & libraries like Redux, Vuex etc with the power of streams. Here is a basic idea of how it works:
Core of VxState is based on the InheritedModel widget from Flutter.
Add to your pubpsec:
dependencies:
...
vxstate: any
Create a store:
import 'package:vxstate/vxstate.dart';
class MyStore extends VxStore {
int count = 0;
}
Define mutations:
class Increment extends VxMutation<MyStore> {
perform() => store.count++;
}
Listen to mutations:
@override
Widget build(BuildContext context) {
// Define when this widget should re render
VxState.watch(context, on: [Increment]);
// Get access to the store
MyStore store = VxState.store as MyStore;
return Text("${store.count}");
}
Complete example:
import 'package:flutter/material.dart';
import 'package:vxstate/vxstate.dart';
// Build store and make it part of app
void main() {
runApp(VxState(
store: MyStore(),
child: MyApp(),
));
}
// Store definition
class MyStore extends VxStore {
int count = 0;
}
// Mutations
class Increment extends VxMutation<MyStore> {
perform() => store.count++;
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// Define when this widget should re render
VxState.watch(context, on: [Increment]);
// Get access to the store
MyStore store = VxState.store as MyStore;
return MaterialApp(
home: Scaffold(
body: Column(
children: <Widget>[
Text("Count: ${store.count}"),
RaisedButton(
child: Text("Increment"),
onPressed: () {
// Invoke mutation
Increment();
},
),
],
),
),
);
}
}