美文网首页
mobx的学习笔记

mobx的学习笔记

作者: 我的天气很好啦 | 来源:发表于2019-02-27 16:45 被阅读0次

一、定义

mobx通过透明的函数响应式编程,使得状态管理变得简单和可扩展:

任何源于应用状态的东西都应该自动地获得。(其中包括UI、数据序列化、服务器通讯等等)

React和Mobx是一对强力组合。
React和Mobx都提供了最优和独特的解决方案。React提供了优化UI渲染的机制,这种机制就是通过使用虚拟DOM来减少昂贵的DOM变化的数量。Mobx提供了优化应用状态与React组件同步的机制,这种机制就是使用响应式虚拟依赖状态图表,它只有在真正需要的时候才更新并且永远保持最新。

二、observable 可观察的状态

mobx为现有的数据结构添加可观察的功能时,通过使用@observable装饰器来给你的类属性添加注释就可以简单地完成。

import { observable } frorm 'mobx';
 
class Todo {
  id = Math.random();
  @observable title = "";
  @observable finitshed = false;
 }

使用observable很像把对象的属性变成excel的单元格,但和单元格不同的是,这些值不只是原始值,还可以是引用值,比如对象和数组。

如果你的环境不支持装饰器语法,也不必担心,mobx可以通过decorate工具在不支持装饰器语法的情况下使用。(但是多数mobx用户更喜欢装饰器语法,因为更简洁)

例如上面那段代码,ES5的版本应该是:

import { decorate, observable } from "mobx";

class Todo {
  id = Math.random();
  title = "";
  finished = false;
}

decorate(Todo, {
  title: observable,
  finished: observable
 })

三、computed 计算值

使用mobx,你可以定义在相关数据发生变化时自动更新的值。通过@computed装饰器或者利用(extend)Observable时调用的getter / setter函数来进行使用。

class Todo {
  @observable todos = [];
  @computed get unfinishedTodoCount() {
  return this.todos.filter(todo => !todo.finished).length;
}
}

mobx会对在执行跟踪函数期间读取的任何现有的可观察属性做出反应。

四、优点

  • 简单且可扩展
    Mobx是状态管理库中侵入性最小的之一。这使得mobx的方法不但简单,而且可扩展性也非常好。
  • 使用类和真正的引用
    使用mobx不需要使用数据标准化。这使得十分适合那些异常复杂的领域模型。
  • 保证参照完整性
    因为数据不需要标准化,所以mobx会自动跟踪状态和衍生之间的关系。
  • 更简单的actions更便于维护
    使用mobx修改状态是非常简单的,你只需要简单的写出你的目的,mobx会替你处理好剩下的事情。
  • 细粒度的可观测性是高效的
    mobx构建应用中所有衍生的图形,以找到保持最新状态所需的重新计算的最少次数。“衍生一切”或许听上去开销很昂贵,但mobx构建虚拟衍生图保持衍生于状态同步所需的冲计算的数量最小化。

简单来说,是因为mobx会在数据上建立更细粒度的"监听器",而不是通过程序来控制。
其次,mobx看到衍生之间的因果关系。因此它可以为衍生排序,使得衍生不会运行多次或引入缺陷。

相关文章

  • mobx 学习笔记

    mobx vs redux 开发难度低 开发代码量少 渲染性能好 mobx的核心思路 状态变化引起副作用应该被触...

  • mobx学习笔记

    安装 npm install mobx --save 配合React: npm install mobx-reac...

  • mobx的学习笔记

    一、定义 mobx通过透明的函数响应式编程,使得状态管理变得简单和可扩展: 任何源于应用状态的东西都应该自动地获得...

  • mobx 源码学习三

    react-mobx 基础学习:observer 和inject 本文是 [mobx 源码初步认识] 第三篇本文讲...

  • mobx笔记总结

    Mobx解决的问题 传统React使用的数据管理库为Redux。Redux要解决的问题是统一数据流,数据流完全可控...

  • 基于create-react-app 2.0构建前端框架 新手必

    开箱即用,容易理解,更适合小白使用开发学习 mobx 简介 和 redux 类似,mobx 是一个数据管理库,都可...

  • react-native mobx实战总结

    mobx引入你的工程 Mobx 官网链接Mobx Github 链接 react-native中安装

  • 14.在vue中使用其他状态管理器

    mobx中文文档: mobx APImobx-vue组件:mobx-vue vuet官网:vuet

  • 使用mobx

    mobx树型结构组织项目状态管理 遵循mobx定义数据存储 一个简单的mobx数据仓库: 因为使用了mobx作为状...

  • React.js学习笔记(17) Mobx

    (1) Decorator 装饰器 Decorator是一个函数,用来修改类或者类的属性的行为。说的直白点deco...

网友评论

      本文标题:mobx的学习笔记

      本文链接:https://www.haomeiwen.com/subject/cnmwyqtx.html