BLoCの構造<1>
9459 ワード
これについて書く人はたくさんいますが、私のように理解できない人のために書く人は少ないです.ほとんどがボブおじさんです.
だから簡単に説明できるところがあるかと思って、参考にしたコードを見つけました.
https://github.com/VGVentures/slide_puzzle
それがどのように実現されているのかを一つ一つ掘り起こしたい.
対応するコードが表示されると、ブートが表示されます.ネットから来たのかどうかはわかりませんが、これがなぜ突き出たのか考えています.しかし、ここでいう案内帯はそうではありません.
Bootstrap(Bootstrap)は通常、最初から知っていた一連のプロセスを指す.
そういう意味!これは最初に実行されたコードと考えられます.
テンプレートコードは基本的に書くコードです.基本的に動作のために書かれたコードですが、まずBlockに必要なコードを見てみましょう.
-コンポーネントフォルダ
ブロ
--部品bloc.dart
--部品state.dart
--部品event.dart
観点
--部品view.dart
ウィジェット
--その他の内部部品を検索します.dart
部品.dart
これを作るのが1ページです.もちろんそうする必要はありませんが、もしみんながよく知っているところでそう使うなら、彼には理由があるのではないでしょうか.
そしてこう書くと、きちんと整理されたコードが見えます.問題は、フォルダがたくさんあるけど.
では、一つずつ見てみましょう.
この部分は簡単で、他の内部コンポーネントが使用する簡単な状態は、ステータスコンポーネントの使用とは無関係です.dartは、子供たちをフォルダの内部の出口に縛る手段です.
大体次の通りです.
ここも簡単ですが、少し知りたいことがあります.
部品でのみ使用されるBlock.
関連コードは簡単に書けます.詳細は上のハーブからも見つけることができます.
残りの次は
だから簡単に説明できるところがあるかと思って、参考にしたコードを見つけました.
https://github.com/VGVentures/slide_puzzle
それがどのように実現されているのかを一つ一つ掘り起こしたい.
起動バー?ベルトを起動!
対応するコードが表示されると、ブートが表示されます.ネットから来たのかどうかはわかりませんが、これがなぜ突き出たのか考えています.しかし、ここでいう案内帯はそうではありません.
Bootstrap(Bootstrap)は通常、最初から知っていた一連のプロセスを指す.
そういう意味!これは最初に実行されたコードと考えられます.
class AppBlocObserver extends BlocObserver {
void onError(BlocBase bloc, Object error, StackTrace stackTrace) {
super.onError(bloc, error, stackTrace);
log('error: ${bloc.runtimeType},$stackTrace. $error');
}
void onChange(BlocBase bloc, Change change) {
super.onChange(bloc, change);
if (bloc is Cubic) log(change.toString());
}
void onTransition(Bloc bloc, Transition transition) {
super.onTransition(bloc, transition);
log(transition.toString());
}
}
エラーとトレンドチェーンブランチでは、Javaのaopと同様にログを残すコードを挿入できます.navigatorまたはblogのステータスに変更すると、コードが実行され、デバッグが容易になります.void main() {
BlocOverrides.runZoned(() => runApp(const BlocTest()),
blocObserver: AppBlocObserver());
}
class BlocTest extends StatelessWidget {
const BlocTest({Key? key}) : super(key: key);
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Splash(),
),
);
}
}
このようにrunZendを使用してAppを実行すると、アプリケーション内のBlockの変化を追跡できます.boilerplate code......... 書いたり書いたりします。
テンプレートコードは基本的に書くコードです.基本的に動作のために書かれたコードですが、まずBlockに必要なコードを見てみましょう.
-コンポーネントフォルダ
ブロ
--部品bloc.dart
--部品state.dart
--部品event.dart
観点
--部品view.dart
ウィジェット
--その他の内部部品を検索します.dart
部品.dart
これを作るのが1ページです.もちろんそうする必要はありませんが、もしみんながよく知っているところでそう使うなら、彼には理由があるのではないでしょうか.
そしてこう書くと、きちんと整理されたコードが見えます.問題は、フォルダがたくさんあるけど.
では、一つずつ見てみましょう.
部品。dart他の内部部品。dart
この部分は簡単で、他の内部コンポーネントが使用する簡単な状態は、ステータスコンポーネントの使用とは無関係です.dartは、子供たちをフォルダの内部の出口に縛る手段です.
大体次の通りです.
export './bloc/widget_bloc.dart
export './view/widget_view.dart
...
...
このようにコードなしでエクスポートされるファイルのみです.コンポーネントview。dart
ここも簡単ですが、少し知りたいことがあります.
部品でのみ使用されるBlock.
関連コードは簡単に書けます.詳細は上のハーブからも見つけることができます.
stless 위젯=>return BlocProvider(child:위젯_view,create:위젯bloc)....
stless 위젯_view => return 해당 위젯의 뷰
これで使えます.残りの次は
Reference
この問題について(BLoCの構造<1>), 我々は、より多くの情報をここで見つけました https://velog.io/@enoch1118/BLoC의-구조1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol