react中mobx的使用

react中mobx的使用_第1张图片
在组件当中调用action,action中修改state的状态,状态改变以后更新组件的视图。

react中mobx的使用_第2张图片
react中mobx的使用_第3张图片
react中mobx的使用_第4张图片
react中mobx的使用_第5张图片
react中mobx的使用_第6张图片
react中mobx的使用_第7张图片
react中mobx的使用_第8张图片
react中mobx的使用_第9张图片
react中mobx的使用_第10张图片
react中mobx的使用_第11张图片
传过去以后app组件就可以使用这个属性了。

react中mobx的使用_第12张图片
react中mobx的使用_第13张图片
react中mobx的使用_第14张图片
@后面跟上一个成员名称这种语法在我们的es6当中我们称之为装饰器语法。

react中mobx的使用_第15张图片
react中mobx的使用_第16张图片
react中mobx的使用_第17张图片
react中mobx的使用_第18张图片
react中mobx的使用_第19张图片
react中mobx的使用_第20张图片
react中mobx的使用_第21张图片
react中mobx的使用_第22张图片
react中mobx的使用_第23张图片
也可以理解为利用装饰器实现的一种继承方式。

装饰器除了可以修饰类本身还可以修饰类的内部成员。

react中mobx的使用_第24张图片
react中mobx的使用_第25张图片
react中mobx的使用_第26张图片
react中mobx的使用_第27张图片
react中mobx的使用_第28张图片
react中mobx的使用_第29张图片
react中mobx的使用_第30张图片
当count发生改变,autorun就会默认执行。

需要经过一定业务处理而得到的数据我们把它提炼为一个方法或者是一个计算属性。react中mobx的使用_第31张图片
react中mobx的使用_第32张图片
本质是方法但是我们用的时候把它当作属性来使用。

有缓存效果,就是访问多次的时候其实只调用了一次的意思。

react中mobx的使用_第33张图片
react中mobx的使用_第34张图片
react中mobx的使用_第35张图片
action还有一个成员叫做bound.
react中mobx的使用_第36张图片
react中mobx的使用_第37张图片
react中mobx的使用_第38张图片
加上bound以后this永远指向的是容器的实例对象。

react中mobx的使用_第39张图片
react中mobx的使用_第40张图片
react中mobx的使用_第41张图片
react中mobx的使用_第42张图片
react中mobx的使用_第43张图片
react中mobx的使用_第44张图片
就是计算的意思

react中mobx的使用_第45张图片
我们需要监视一些数据的改变,当这些数据改变的时候我们去执行一些自定义的业务逻辑。

react中mobx的使用_第46张图片
react中mobx的使用_第47张图片
react中mobx的使用_第48张图片
react中mobx的使用_第49张图片

react中mobx的使用_第50张图片

大佬:https://www.bilibili.com/video/BV1tL4y1h7ND?p=6&spm_id_from=pageDriver

import React from "react";
import { render } from "react-dom";
import { makeAutoObservable } from "mobx";
import { observer } from "mobx-react-lite";

class AppState {
  timer = 0;
  num=10;
  add=()=>{
    this.num++
  }

  constructor() {
    makeAutoObservable(this);
    setInterval(() => {
      this.timer += 1;
    }, 1000);
  }

  reset = () => {
    this.timer = 0;
  };
}
const appState=new AppState()

const TimerView = observer(({ appState }) => (
  
));

render(
  
{appState.num}
, document.getElementById("root") );

你可能感兴趣的:(前端(HTML,react.js,前端,reactjs)