MobX入门

简介: MobX入门本文尝试解释MobX是如何运作的。我们将用MobX创建一个小案例。如果你正在找靠谱的MobX文档,可以去看官方文档。

MobX入门

本文尝试解释MobX是如何运作的。我们将用MobX创建一个小案例。如果你正在找靠谱的MobX文档,可以去看官方文档

什么是MobX

官方文档的解释:简洁,易扩展的状态管理。简单来说,MobX可以很好的管理应用程序的状态/数据,同时又简洁,易扩展。先来看一张图:

mobx-diagram

我们通过上图的的步骤来创建一个简单应用。

State

mobx-store

在MobX中你可以设置一个或者多个state,我们先设置一个:

var store = mobx.observable({
    counter: 0
})

我们初始化store,只有一个状态数据counter。你的对象可能有多个层级对应多个不同的属性。

Rendering

mobx-render

MobX.js一起用效果很好,但是不用react.js也可以。我们用原生JavaScript来把状态渲染到页面:

`<div>-</div>`
function render(state) {
    document.getElementById('counter').textContent = state.counter;
}

我们拿到了状态并更新到了页面。

Actions

mobx-action

当action发生,我们可以直接改变状态:

<button id="button">Increment</button>
document.getElementById('button').addEventListener('click', function() {
    store.counter = store.counter + 1
})

当我们点击按钮,state 中的 counter将会加1。

改变State

当我们改变状态,我们将更新渲染:

mobx.observe(store, function() {
    render(store)
})

最终代码

jsfiddle

<!--html-->
<div id="counter">-</div>
<button id="button">Increment</button>
// JavaScript
var store = mobx.observable({
    counter: 0
})

function render(state) {
    document.getElementById('counter').textContent = state.counter;
}

document.getElementById('button').addEventListener('click', function() {
    store.counter = store.counter + 1
})

mobx.observe(store, function() {
    render(store)
})

与Redux比较

比起Redux,MobX不管是写代码还是理解,似乎都要简单很多,而且你不用写很多重复的代码。但是随之而来的代价就是你不知道它内部是如何运作的。MobX也可以写的和Redux一样:用actions,创建action,创建异步action等等,但是不是强制的。总的来说,如果你保持你的代码模块化,可测试以及数据单向流,MobX是个不错的选择。

本文转载自:众成翻译
译者:miaoYu
链接:http://www.zcfy.cc/article/4730
原文:https://bumbu.github.io/simple-mobx

原文:https://bumbu.github.io/simple-mobx/

相关文章
|
7月前
|
缓存 前端开发 API
React + MobX 快速上手2
React + MobX 快速上手
|
7月前
|
存储 前端开发
React + MobX 快速上手1
React + MobX 快速上手
|
10月前
|
存储 前端开发 JavaScript
【深入浅出 React 和 Redux】 笔记(上)
【深入浅出 React 和 Redux】 笔记(上)
50 0
|
11月前
|
存储 JSON JavaScript
「前端架构」Redux vs.MobX的权威指南
「前端架构」Redux vs.MobX的权威指南
|
11月前
|
存储 JavaScript 前端开发
React系列教程(4)React Redux快速入门(上)
React系列教程(4)React Redux快速入门
92 0
|
11月前
|
资源调度 JavaScript 前端开发
React系列教程(4)React Redux快速入门(下)
React系列教程(4)React Redux快速入门(下)
54 0
|
JavaScript 前端开发
react实战笔记134:redux简介
react实战笔记134:redux简介
72 0
react实战笔记134:redux简介
|
JavaScript 前端开发
在react项目实战中使用Redux(案例讲解)
上篇文章讲解了redux的基本使用方法,这篇文章通过小案例教大家如何在实际的react的项目中实现redux,加深对redux的理解和掌握,基础内容不清楚的可以看看上篇文章
163 0
在react项目实战中使用Redux(案例讲解)
|
存储 前端开发 JavaScript
理解 React,但不理解 Redux,该如何通俗易懂的理解 Redux?
作者:Wang Namelos 链接:https://www.zhihu.com/question/41312576/answer/90782136 来源:知乎
54 0
|
JavaScript 前端开发 API
React开发实践之(4)redux入门
React开发实践之(4)redux入门
119 0