dynamic-object

dynamic-object
利用 proxy
完整实现了 object.observer
。主要为 react 提供数据流功能。可以结合 dynamic-react
以 mutable 方式为 react 组织数据流;同时也支持融合 redux,结合 mutable 与 immutable 的优势,以 mutable 方式组织 store,以 immutable 方式更新数据。
功能与 mobx 很像,同时借鉴了 nx-js 实现理念。给力的地方在于,不支持 ie11 浏览器!非常激进,核心使用 proxy
,抛弃兼容性换来的是超高的性能,以及完美的动态绑定。
核心用例:
import { observable, observe } from "dob"
const dynamicObj = observable({
a: 1
})
observe(() => {
console.log("dynamicObj.a has changed to", dynamicObj.a)
})
dynamicObj.a = 2
在线 Demo
安装
yarn add dob --save
新包名 dob 取代原先 dynamic-object
dob = dynamic-object = dynamic-obsverable
稳定性
目前通过了 100%(50个)测试用例
功能
结合 dynamic-react
以 mutable 方式管理数据流,vm 层使用 dynamic-react,只有使用到的变量发生变动,才会触发更新!
查看 在线 Demo,支持分型的 分型 Demo
Api
observable
、observe
: 产生对象的代理、动态跟踪代理对象变化;dynamic-react
: 将代理对象结合到 react 当中,自动、精确的更新组件;Action
: 建议所有修改收敛在 action 中,且支持更新合并。
结合 dependency-inject
以依赖注入的方式管理 store 与 action,直接查看 在线 Demo,快速结合 分型 demo
结合 react-redux
支持以 mutable 方式管理数据流,但 vm 层对接到 redux,虽然以可变方式修改数据,但会自动生成不可变数据!在线 Demo
也可以 fork 本项目,npm start
就可以打开 redux todoMVC!数据层依然是 mutable。
unpkg
https://unpkg.com/dynamic-object@2.1.19/built/bundle.js
实现原理解析