V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
BirdyLee
V2EX  ›  前端开发

对 react.js 做了一个响应式 state 管理框架,欢迎取用

  •  
  •   BirdyLee · 2019-02-15 20:37:37 +08:00 · 1955 次点击
    这是一个创建于 2109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前段时间参考 vue 原理,花了几个月对 react 做了一个响应式框架: [ Pastate.js ] ,它使 react 可以像 vue 一样进行 [响应式赋值] 和实现 [自动双向数据绑定] 。

    项目地址: https://github.com/BirdLeeSCUT/pastate

    使用超级简单,文档非常齐全,欢迎各位参考取用和 star⭐,欢迎交流指教!

    Pastate 是一个响应式 react state 管理框架,实现了对 state 的异步响应式管理。Pastate 是一个精益框架,它对很多高级概念进行了友好封装,这意味着你不必学习一些难以理解的概念,就可以在一个简单的应用中便捷地使用 pastate。在应用变得逐渐复杂的过程中,你只要逐渐学习并使用 pastate 中更多的功能,以满日益复杂的系统开发需求。同时,pastate 也是一个向后兼容的渐进式框架,你可以在现有的 react 或 redux 项目中,把一部分组件改用 pastate 来实现,再逐渐拓展到整个项目。

    [特性] 便捷易用:pastate 对高级概念进行了封装,只要有 react 基础知识即可轻松上手 响应式 state: 可以直接用 js 原生模式更新 state 的值,pastate 会响应式地为你更新相关视图 类型提示:pastate 具有完善的类型定义文件,可借助 intelliSense 极大地提高开发效率 按需渲染:pastate 实现了 state 节点按需溯源更新引用机制,视图可以高效响应 state 的变化 异步更新机制:当你对 state 进行连续的修改时,pastate 会高效地为你只做一次异步视图更新 友好的学习曲线:pastate 封装了 flux 模式的高级概念,只需在感兴趣时去了解这些概念 兼容 redux 项目:你可以把 pastate 轻松整合到 redux 项目中,把部分容器实现为 pastate 模式 支持 TypeScript:pastate 本身使用 TpyeScript 进行开发,有完善的类型定义和泛型支持 MIT 协议授权 : 你可以免费地在个人或商业项目中使用,并按需修改或扩展

    [原理] Pastate 名字源自 Path State 的简写,pastate 在 state 的每个节点上增加节点的位置(path)信息和 store 归属信息,从而实现对象或数组节点的按需递归引用更新,实现 immutable state 特性,因此 pastate 可以管理复杂的 state 树并实现高效的异步按需渲染。同时 pastate 基于 ES5 的 Object.assign 实现了 state 的全节点响应式操作支持,你只需像修改普通变量一样修改 state 即可, 如 state.userinfo.name = 'myName', 这时 pastate 的响应式引擎会为自动为你异步高效更新相关视图。

    详见项目 github: https://github.com/BirdLeeSCUT/pastate

    原理图: pastate 原理图

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2745 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:11 · PVG 23:11 · LAX 07:11 · JFK 10:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.