react-cursorReact.js的不可变状态
react-cursor 是不变地处理递归或深度嵌套数据的工具。react-cursor是在ClojureScript中首次看到的抽象的javascript端口。此实现与任何渲染库都没有关联,并且非常小。
示例代码:
var App = React.createClass({ getInitialState: function () { return { "a": 10, "b": { "foo": { "bar": 42, "baz": ['red', 'green'] } } }; }, render: function () { return <pre>{JSON.stringify(this.state, undefined, 2)}</pre>; } }); var Cursor = require('path/to/react-cursor').Cursor; var cursor = Cursor.build(this) // `this` is the React component's this pointer // or the return value of React.renderComponent cursor.refine('a').value //=> 10 cursor.refine('a').onChange(11); cursor.refine('b').refine('foo').value //=> { 'bar': 42, 'baz': ['red', 'green'] } cursor.refine('b').refine('foo').onChange({ 'bar': 43, 'baz': ['red', 'green'] }) cursor.refine('b', 'foo', 'baz', 1).onChange('blue')
评论