Fish Redux

2024-04-13 11:08
文章标签 redux fish

本文主要是介绍Fish Redux,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Fish Redux

  • Fish Redux使用说明
    • 基础使用
      • Fish-Redux组成部分
      • 工作流程
      • 配置环境
      • 引入Fish-Redux
      • 安装FishReduxTemplate
      • FishReduxTemplate使用说明
    • Fish Redux 的优点及原理
      • 数据的集中管理
      • 组件的分治管理
      • View、Reducer、Effect 隔离
      • 良好的扩展性
      • 精小、简单、完备
    • 官方文档以及源码
    • 项目实践
    • flutter_json_format(Json转实体类)

Fish Redux使用说明

Fish Redux 是一个以 Redux 作为数据管理的思想,以数据驱动视图,组装式的 Flutter 应用框架。
它的特点是配置式组装。 一方面我们将一个大的页面,对视图和数据层层拆解为互相独立组件,上层负责组装,下层负责实现; 另一方面将组件拆分为 View,Reducer,Effect 等相互独立的上下文无关函数。所以它会非常干净,易维护,易协作。

基础使用

Fish-Redux组成部分

Page
page代表一个页面,继承自 component。它由view(即展示ui的Widget)、state、reducer、effect等组成。

State
state用来保存 page/component(页面/组件)的状态,即存放数据。

Action
action是我们定义的意图。我们需要处理某些操作或事件时,通过发送(dispatch)特定的 action,让对应action的接收者进行处理。

Action包含两个字段:
type:action的类型
payload:action搭载的参数

Reducer
reducer的作用是接收某个意图(action),然后对数据做出修改,即更新状态(state)。

Effect
effect的用法跟 reducer 类似,但是责任不同。他负责处理“副作用”,这是函数式编程的概念。在这里简单地理解为,reducer是负责(state)的更新,effect 负责 state 更新之外的事情。

Store
store维持全局的状态(state),应用只有一个单一的 store 。

Adapter
Adapter 也是对局部的展示和功能的封装。它为 ListView 高性能场景而生,它是 Component 实现上的一种变化。

工作流程

用户操作
更新
dispatch
dispatch
NewState
View
Context
State
Effect
Reducer

配置环境

参考(Flutter学习体会)

引入Fish-Redux

打开pubspec.yaml文件,在 dependencies 下面加上 fish_redux: ^0.3.3 ,点击 packages get 。

安装FishReduxTemplate

fish-redux团队为我们提供了一个插件,方便我们使用fish-redux,简化了文件创建的过程。
1
2

FishReduxTemplate使用说明

首先新建一个 package 命名为 ***(名字按自己需求写)。

右键点击 自己起的名字----> New ----> FishReduxTemplate

3
点击箭头选择的地方按自己需求勾选自己需要的组件会生成组件,组件创建完成以后,就需要自己按文档上面描述的自己写代码了。
4
注意
用这个插件的时候有个bug,生成的插件需要切换一下视图才能显示出来,千万不要多次创建。

Fish Redux 的优点及原理

数据的集中管理

通过 Redux 做集中化的可观察的数据管理。将原汁原味地保留所有的 Redux 的优势,同时在 Reducer 的合并上,变成由框架代理自动完成,大大简化了使用 Redux 的繁琐度。

组件的分治管理

组件既是对视图的分治,也是对数据的分治。通过逐层分治,我们将复杂的页面 和数据切分为相互独立的小模块。这将利于团队内的协作开发。

View、Reducer、Effect 隔离

将组件拆分成三个无状态的互不依赖的函数。因为是无状态的函数,它更易于编写、调试、测试、维护。同时它带来了更多的组合、复用和创新的可能。
声明式配置组装组件、适配器通过自由的声明式配置组装来完成。包括它的 View、Reducer、Effect 以及它所依赖的子项。

良好的扩展性

核心框架保持自己的核心的三层关注点,不做核心关注点以外的事情,同时对上层保持了灵活的扩展性。
框架甚至没有任何的一行的打印的代码,但我们可通过标准的 Middleware 来观察到数据的流动,组件的变化。
在框架的核心三层外,也可以通过 dart 的语言特性 为 Component 或者Adapter 添加 mixin,来灵活的组合式地增强他们的上层使用上的定制和能力。
框架和其他中间件的打通,诸如自动曝光、高可用等,各中间件和框架之间都是透明的,由上层自由组装。

精小、简单、完备

非常小,仅仅包含 1000 多行代码;
使用简单,完成几个小的函数,完成组装,即可运行;
完备的。

官方文档以及源码

Fish-Redux开源地址

闲鱼出版书籍Flutter in action

项目实践

项目实例使用了公司原生的东西,不方便贴出来。有需要的可以留言。

flutter_json_format(Json转实体类)

添加插件步骤:File->Settings->Plugins->Marketplace搜索插件名字,安装完成然后重启Android Studio。

dbj
我这已经安装过了,所以搜索出来显示的是Installed。


使用方法

在需要创建实体类文件的目录下新建dart文件,复制你获取到的json串,然后可以用快捷键 (mac os:command + N; or windows:Alt+Inset)或者在文件里面鼠标右键选择Generate...,选择flutter json format,粘贴json然后点OK自动生成model类。(不明白的可以按下图依次操作)

1

2

3

这篇关于Fish Redux的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/899965

相关文章

Typescript实现react-redux的useSelector和useDispatch的状态定义

背景:react中使用typescript,在引入redux之后很多状态定义有问题,记录下来(文章记录学习react-redux过程中的踩坑)。 1.useSelector时,state语法报错,类型为unknown,如下图 我的store状态设置的很简单,两个模块导出,只在state中定义了一个基础类型 在组件中使用useSelector取state中的值,然后报state类型未知 我

Edible Fish 可食用鱼

DHA 二十二碳六烯酸,俗称脑黄金 常见的淡水鱼 COMMON FRESHWATER FISH 草鱼 grass carp 鳙鱼 bighead carp 桂花鱼 mandarin fish 花斑鱼 managua cichlid 黄颡鱼 yellow catfish 鲫鱼 crucian carp 鲮鱼 mud carp 罗非鱼 tilapia 泥鳅 loach 鲶鱼 catfish 太阳鱼

Self-study Python Fish-C Note20 P64to65

类和对象 (part 3) 本节主要介绍 类和对象的多态和鸭子类型、私有变量和 __slots__(原视频P64-65)\ 多态 多态是面向对象编程的三大特征之一,另外两个是封装和继承。多态是指同一个运算符、函数或对象,在不同场景下具有不同作用效果的情况。 Python 是一门动态语言,多态本来就是 Python的一种特性。 比如: 加号:两边都是数字的时候就是执行算术运算(相加),如果两边

React应用中的状态管理:Redux vs Context API

聚沙成塔·每天进步一点点 本文回顾 ⭐ 专栏简介React应用中的状态管理:Redux vs Context API1. 引言2. Redux2.1 Redux简介2.2 Redux的核心概念2.2.1 单一状态树(Single Source of Truth)2.2.2 Actions2.2.3 Reducers2.2.4 Store 2.3 Redux的优点2.4 Redux的缺点

生产环境变态开启devtools(redux篇)

前沿 默认都安装了谷歌的redux-devtools插件哦 没有亮,说明关闭了生产环境的redux devtools工具, 接下来跟着博主一起变态启用它 如果看了我上一篇的小伙伴,应该会很熟练了,如果没有看上一篇的,也没关系,博主会手摸手的教你们打开它。 正常的解决方案(适用内部开发人员) // 当然是只有对应的开发人员知道// 常用的方案就是,添加query参数if(qu

Redux、Vuex、MobX的特点和优势

Redux、Vuex、MobX是前端开发中常用的状态管理库,它们各自具有独特的特点和优势,适用于不同的开发场景和需求。以下是对这三个状态管理库的特点和优势的详细分析。 Redux 特点 单一数据源:Redux强调整个应用的状态应该被存储在一个单一的store中,这个store是一个普通的JavaScript对象,包含了应用的所有状态。纯函数:Redux中的reducer必须是纯函数,它们接收

手把手教你用vite+React18+TS+redux+prettier+eslint+Ant打造企业级前端项目

通过这篇文章你可以学到 如何使用使用 webpack 搭建项目如何在 webpack中集成 typescript如何在 webpack 中集成 React Router 和 Redux如何使用 React 的组件库 Ant Design如何在项目中集成 eslint 和 prettier 保证代码质量如何为团队开发专属的项目模板 环境依赖版本 node:v18.13.0npm -vvite:

React学习笔记(三)——redux状态管理工具

1. Redux快速上手 1.1 什么是Redux? Redux 是 React 最常用的 集中状态管理工具 ,类似于 Vue 中的 Pinia(Vuex), 可以独立于框架运行 作用: 通过集中管理的方式管理应用的状态 1.2 Redux快速体验 不和任何框架绑定,不使用任何构建工具,使用纯Redux实现计数器 模版: 使用步骤: ① 定

React+Redux+Ant Design+TypeScript 电子商务实战-客户端应用 05 购物车和订单

将产品添加到购物车 定义方法 // src\helpers\cart.tsimport { Product } from '../store/models/product'export interface CartItem extends Product {count: number}// 将产品添加到购物车export const addItem = (item: Product, n

React+Redux+Ant Design+TypeScript 电子商务实战-客户端应用 04 首页产品展示、搜索、筛选和产品详情

构建首页布局 搜索布局 // src\components\core\Search.tsximport { Button, Col, Divider, Form, Input, Row, Select } from 'antd'import ProductItem from './ProductItem'const Search = () => {return (<><Formlayout