Elf
一个具有魔力的响应式存储库
Elf 是基于 RxJS 构建的响应式不可变状态管理解决方案。它使用自定义 RxJS 运算符查询状态,并使用纯函数更新状态。
Elf 鼓励简洁。它为您省去了创建样板代码的麻烦,并提供了功能强大且学习曲线适中的工具,适合有经验和缺乏经验的开发人员。
✅ 模块化设计
✅ 可树摇和完全类型化
✅ CLI
✅ 一流的实体支持
✅ 请求状态和缓存
✅ 持久化状态
✅ 状态历史
✅ 分页
✅ 开发工具
赞助 ngneat
赞助有助于 ngneat 库的持续开发和维护。考虑请您的公司赞助 ngneat,因为它是您业务和应用程序开发的核心。
金牌赞助商
成为金牌赞助商,您的徽标将在我们 README 的前 5 个存储库中突出显示。
银牌赞助商
成为银牌赞助商,您的徽标将在我们 README 的前 3 个存储库中突出显示。
铜牌赞助商
成为铜牌赞助商,您的徽标将出现在我们 GitHub 的 README 上。
🤓 在文档网站上了解更多
👩🎓 查看 React Todos 示例
😋 查看 Angular Todos 示例或 Books 示例
import { createStore, withProps, select, setProp } from '@ngneat/elf';
import { withEntities, selectAllEntities, setEntities } from '@ngneat/elf-entities';
interface TodosProps {
filter: 'ALL' | 'ACTIVE' | 'COMPLETED';
}
interface Todo {
id: string;
title: string;
status: string;
}
const store = createStore({ name: 'todos' }, withProps<TodosProps>({ filter: 'ALL' }), withEntities<Todo>());
export const filter$ = store.pipe(select(({ filter }) => filter));
export const todos$ = store.pipe(selectAllEntities());
export function setTodos(todos: Todo[]) {
store.update(setEntities(todos));
}
export function updateFilter(filter: TodosProps['filter']) {
store.update(setProp('filter', filter));
}
🗒️ 查看更新日志
@ngneat/elf
@ngneat/elf-cli
@ngneat/elf-devtools
@ngneat/elf-entities
@ngneat/pagination
@ngneat/persist-state
@ngneat/requests
@ngneat/state-history