flutter_bloc 7.1.0总结。

bloc模式将数据,业务逻辑,界面解耦。

flutter_bloc是其中一种实现框架,底层采用的依然是inheritedwidget。所以,不仅是解耦,还可以管理state,可以非常容易进行跨越层级管理状态。

基本的组成非常简单

 Widget build(BuildContext context) {
    return BlocProvider(
      create: (_) => ThemeCubit(),
      child: BlocBuilder<ThemeCubit, ThemeData>(
        builder: (_, theme) {
          return MaterialApp(
            theme: theme,
            home: BlocProvider(
              create: (_) => CounterBloc(),
              child: CounterPage(),
            ),
          );
        },
      ),
    );
  }

最外层是一个blocprovider,这其实是一个页面信息和逻辑数据进行交互的平台,因为这个实例里面持有了两者的实例。

create,业务逻辑和数据的实例,通常继承自cubit或bloc等,内部没有太大区别,区别就在于泛型。bloc<t,k>两个泛型,前者表示逻辑类型,后者表示要变化的数据。cubit<t>则相对简单,只有数据类型。

child,通常直接是BlocBuilder或者子布局含有这个,里面核心是build函数,blocprovider,会寻找这个函数,传了两个实例,前者是bloc或者cubit的实例,也就是create那里写的实例,后者是data,所以blocbuilder通常是包裹需要局部刷新的组件。如此就可以随便操作了。

进行逻辑操作使用方法通常是

context.read<CounterBloc>().add(CounterEvent.decrement)

context.read就是寻找实例,add(业务逻辑类型),这种是针对继承自bloc的,传入两个泛型的。

context.read<ThemeCubit>().toggleTheme(),

这种是针对cubit的,直接调用里面的函数,或者可以直接赋值也行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值