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')评论
