mobx
mobx版本 🔗︎
mobx4 mobx5
设计哲学 🔗︎
任何应用程序的状态都应该自动地获取:不需要触发事件 、调用分派程序等 mobx提供机制来存储和更新应用状态供React使用:使用响应式虚拟依赖状态图表,只有在需要的时候才更新而且永远保持最新 简单可扩展: 侵入性小
核心概念 🔗︎
可观察的状态:@observable 计算值:
class TodoList {
@observable todos = []
@computed get unfinishedTodoCount() {
return this.todo.filter(todo => !todo.isFinished).length
}
}
反应:
@observer
class TodoListView extends Component {
render() {
return <div>
<ul>
{this.props.todoList.todos.map(todo =>
<TodoView todo={todo} key={todo.id} />
)}
</ul>
Tasks left: {this.props.todoList.unfinishedTodoCount} // @1
</div>
}
}
const TodoView = observer(({todo}) =>
<li>
<input
type="checkbox"
checked={todo.finished}
onClick={() => todo.finished = !todo.finished}
/>{todo.title}
</li>
)
当点击某个单项的时候, TodoView会强制渲染, 如果unfinishedTodoCount改变 会强制TodoListView渲染( 而如果删除@1 这一行代码 则TodoListView不会重新渲染 自定义反应: autorun
Be the first to know when I post cool stuff
Subscribe to get my latest posts by email.
Thanks for signing up! Check your email to confirm your subscription.
Whoops, we weren't able to process your signup.