记状态管理库Akita中的一个坑

Akita是什么

Akita是一种基于RxJS的状态管理模式,它采用Flux中的多个数据存储和Redux中的不可变更新的思想,以及流数据的概念,来创建可观察的数据存储模型。 无论是Angular、React、Vue、Web组件,还是普通的旧式JS,秋田都可以完成繁重的工作,并作为维护干净、无样板、可伸缩的应用程序的有用工具。

Akita基于面向对象的设计原则,而不是函数式编程,因此具有OOP经验的开发人员应该感到很熟悉。它您的团队提供了一个不可偏离的固定模式。

注意一个坑

在创建Entity Store时根据需求您可能需要在@StoreConfig()装饰器中配置Entity Store 的id属性

直接上代码

一段ts代码

import { Todo } from './todo.model';
import { EntityState, EntityStore, StoreConfig } from '@datorama/akita';
​
export interface TodosState extends EntityState<Todo> { }
​
// fixme 注意这里
@StoreConfig({ name: 'todos' })
export class TodosStore extends EntityStore<TodosState, Todo> {constructor() {super(); } }

这是一段官方的demo,但是其中有个坑。 若您Entity Store中的实体类型中唯一标识不为id,则需要自己手动设置 Akita @StoreConfig 会默认绑定您实体类型中的id属性作为唯一标识,若 不绑定唯一标识且@StoreConfig又找不到id属性则EntityStore在调用 set存储数据时会出错(但是不会报错。。。。。天坑,不知道时有意为之还是bug)

若唯一标识Entity Id不为id则写为下面这种形式

一段ts代码:

import { Todo } from './todo.model';
import { EntityState, EntityStore, StoreConfig } from '@datorama/akita';export interface TodosState extends EntityState<Todo> { }// fixme 注意这里,修改后为
@StoreConfig({ name: 'todos',idKey: yourId })
export class TodosStore extends EntityStore<TodosState, Todo> {constructor() {super(); } }

吐槽一下: 还有就是官网在文档关于这个需要特别注意 事项这个唯一标识绑定的介绍是在创建Entity Store之后的...(坑死欧啦)

转载于:https://www.cnblogs.com/siegaii/p/11071982.html

记前端状态管理库Akita中的一个坑相关推荐

  1. [译] SpaceAce 了解一下,一个新的前端状态管理库

    原文地址:Introducing SpaceAce, a new kind of front-end state library 原文作者:Jon Abrams 译文出自:掘金翻译计划 本文永久链接: ...

  2. react dispatch_记 react 项目在 TypeScript 化中的一个坑,以及相应的类型改动

    最近向 @types/react 提交了一个变动,改动了 useReducer 的定义,相信各位读者如果要 TypeScript 化,或者已经 TS 化的话,有可能会收到影响. 通过安装 @types ...

  3. 给前端快速上手摸鱼一把主流状态管理库,这家伙真香

    前言 大家好,我是虚竹. 众所周知,React是一个专注于UI层的库,不同于Vue.Angular等框架,React 的各种状态管理方案一直是在百花齐放.群魔乱舞.除了热门库Redux.Mobx.Re ...

  4. React 状态管理库: Mobx

    React 是一个专注于视图层的库.React 维护了状态到视图的映射关系,开发者只需关心状态即可,由 React 来操控视图. 在小型应用中,单独使用 React 是没什么问题的.但在复杂应用中,容 ...

  5. React 新 Context API 在前端状态管理的实践

    2019独角兽企业重金招聘Python工程师标准>>> 本文转载至:今日头条技术博客 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较 ...

  6. react调用api等待返回结果_React新Context API在前端状态管理的实践

    ### React新Context API在前端状态管理的实践 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较为繁琐不好管理,通常我们需要使用Redu ...

  7. 一文带你全面体验八种状态管理库

    动手点关注 干货不迷路 写在前面 状态管理库伴随着数据驱动类框架诞生以来,一直都是个带争议的话题,社区里关于这个方向的讨论文章也是数不胜数,本文写作的目的并不是去详细解答每一款状态库的设计原理和最佳实 ...

  8. vue2项目复习01-关闭elint检校,src文件别名,路由传参的对象写法,代理解决跨域问题,nprogress,vuex状态管理库,store的模块式开发,节流与防抖,编程式导航+事件委托路由跳转

    1.关闭elint语法校验 创建vue.config.js //关闭elint语法校验 {lintOnSave:false; } 2.src文件夹配置别名 jsconfig.json配置别名 @代表s ...

  9. 浅析前端状态管理Redux Mobx Vuex

    写在前面 前端技术的发展日新月异,vue,react,angular等的兴起,为我们带来了新的开发体验.但随着技术的革新,以及前端页面复杂度的提升,对应有localStorage,eventBus,v ...

最新文章

  1. 京东笔试4.2-19:00随笔
  2. Test of etco
  3. ie浏览器安全使用网银支付功能方法
  4. [编程技巧] C++字符串初始化的优化写法
  5. 3D远方纯动态白云页面源码
  6. cesium导入kml文件
  7. abaqus算出来的转角单位是什么_ABAQUS中的单位使用方法
  8. office及各类软件的图标修复
  9. 推荐9款便签云生成工具
  10. 7-12 愿天下有情人都是失散多年的兄妹 (25分)
  11. Audio AudioFocus流程
  12. (附源码)APP+springboot垃圾自动分类管理系统 毕业设计 160846
  13. 字符串函数 tirm 的作用
  14. Java高级深入与JVM
  15. 【破解利器】PE工具篇(PE编辑,查看等操作)
  16. 多系统单点登录(sso)设计
  17. 高速公路隧道交通安全设施的设置、管理要点
  18. 国富论总结(第一卷 1-3 章)
  19. [硬件]单片机小制作----Flash存储图片句子,彩屏显示
  20. 调音台操作技巧(上):六大输入部分要点

热门文章

  1. 南卡和FIIL 哪个更好用?南卡和FIIL CC nano蓝牙耳机对比测评
  2. excel一个表格分成多个
  3. PV操作与前趋图题型
  4. ol xyz 加载天地图_Openlayers3 加载百度地图,天地图
  5. 综合素质能力测试软件,【北森能力题库_员工能力测试管理系统】员工素质测评题库_员工综合素质测评表_免费在线试用_选软件网...
  6. 了解HTT1/HTT2/HTT3 ?
  7. CRF进行实体的识别
  8. 权威一文解读人工智能等级考试证书超高含金量
  9. 用C语言开发NES游戏(CC65)03、VRAM缓冲区
  10. 使用python(turtle)画小猪佩奇