写点什么

ReactNative 进阶(二十九):BloC 模式

  • 2022 年 1 月 26 日
  • 本文字数:1037 字

    阅读完需:约 3 分钟

ReactNative进阶(二十九):BloC 模式

一、什么是 BloC 模式?

BloCBusiness Logic Component】模式是 paolo soares 和 cong hui 在 2018 年 Google dartconf 上提出的,具体的视频你可以参考YouTube.


从视频中可以看到 paolo soares 用一个及其简单的例子阐述了传统写法的问题:


  1. 业务逻辑和 UI 组件糅合在一起。

  2. 不方便测试,不利于单独的测试业务逻辑部分。

  3. 不能更好的重用业务逻辑代码,体现在,如果网络请求的逻辑有所变动的话,加入这个业务功能被两个端(web、flutter)使用的话,是需要改动两个地方的。


基于上面出现的一些问题,paolo soares 顺利的将我们重传统的开放方式,引入到了 Bloc 模式。


BloC架构图如下:


二、BlocProvider (视图标签)

BlocProvider: 使用 BlocProviderBlocView 进行关联, 使在 View 中, 可以使用 Bloc.

三、StreamBuilder (视图标签)

StreamBuilder: 响应式视图. 当 Bloc 中数据改变时, 会重构 StreamBuilder.


StreamBuilder 架构图如下:


四、拓展阅读

五、延伸阅读

在安装脚手架工具Yaemon时,发现npm命令执行报错,错误信息如下:


npm Error: Cannot find module 'are-we-there-yet'
复制代码


查询后发现是由于npm 损坏了,are-we-there-yetnpmnpmlog依赖的一个包。接下来就是一番折腾,参照如下步骤尝试去解决:


cd /usr/local/lib/node_modulesmv npm /tmpsudo curl -L registry.npmjs.com/npm/-/npm-6.13.7.tgz |sudo tar xz --transform="s:^package:npm:"➜  ~ npm -v6.13.7
复制代码


执行后,发现错误依旧存在。


索性直接重装。


针对Homebrew 安装的,应用如下方法卸载:


brew uninstall node
复制代码


针对pkg安装包安装的,应用如下方法卸载:


sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}
复制代码


或者


sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
复制代码


注意:卸载完成后可通过在控制台输入:node/npm 来判断是否卸载完全


node - -> command not found
npm - -> command not found
复制代码


最后,就是重新安装nodeHomebrew 安装方式如下:


brew install node
复制代码


也可以通过 pkg 安装包方式安装。


安装后,执行如下命令验证安装成功与否:



注意:npm是集成在node中的,所以需要通过卸载/重装 node 来实现卸载/重装npm


发布于: 刚刚阅读数: 2
用户头像

No Silver Bullet 2021.07.09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
ReactNative进阶(二十九):BloC 模式