当前位置: 首页 > news >正文

服装定制合同范本关键词seo培训

服装定制合同范本,关键词seo培训,wordpress打开速度慢 插件,企业门户网站建设论文MobX 介绍 需求,组件0 改变了数据,其它组件也想获得改变后的数据,如图所示 这种多个组件之间要共享状态数据,useState 就不够用了,useContext 也不好用了 能够和 react 配合使用的状态管理库有 MobX Redux 其中…

MobX

介绍

需求,组件0 改变了数据,其它组件也想获得改变后的数据,如图所示

这种多个组件之间要共享状态数据,useState 就不够用了,useContext 也不好用了

能够和 react 配合使用的状态管理库有

  • MobX

  • Redux

其中 Redux API 非常难以使用,这里选择了更加符合人类习惯的 MobX,它虽然采用了面向对象的语法,但也能和函数式的代码很好地结合

文档
  • MobX 中文文档

  • MobX 官方文档

安装
 npm install mobx mobx-react-lite

在异步操作里为状态属性赋值,需要放在 runInAction 里,否则会有警告错误

使用 store,所有使用 store 的组件,为了感知状态数据的变化,需要用 observer 包装,对应着图中 reactions

  • mobx 目前版本是 "mobx": "^6.10.2"

  • mobx-react-lite 目前版本是 "mobx-react-lite": "^4.0.5"

  • 名词
  • Actions 用来修改状态数据的方法

  • Observable state 状态数据,可观察

  • Derived values 派生值,也叫 Computed values 计算值,会根据状态数据的改变而改变,具有缓存功能

  • Reactions 状态数据发生变化后要执行的操作,如 react 函数组件被重新渲染

  • 使用

    首先,定义一个在函数之外存储状态数据的 store,它与 useState 不同:

  • useState 里的状态数据是存储在每个组件节点上,不同组件之间没法共享

  • 而 MobX 的 store 就是一个普通 js 对象,只要保证多个组件都访问此对象即可

  • import axios from "axios";
    import { Student } from "../model/Student";
    import { makeAutoObservable, runInAction, makeObservable, observable, action, computed } from 'mobx'
    import R from "../model/R";
    class StudentStore {//属性 对应状态数据(observable state),可观察@observable student: Student = { id: 0, name: 'zhangsan' }//对应着action方法(用来修改状态数据的方法)
    //手动标识的时候使用 @action@action setName(name: string) {this.student.name = name}//对应着action方法(用来修改状态数据的方法)@action async fetch(id: number) {const resp = await axios.get<R<Student>>(`http://localhost:8080/api/students/${id}`)runInAction(() => {this.student = resp.data.data})}//派生值(derived values)或者叫计算值(computed values)会根据状态数据的改变而改变,计算值具有一个特性,//它具有缓存功能,比如第一次输入的是宋远桥,会计算出是宋大侠,第二次以及之后,如果宋远桥不变,那 //么displayName不会再执行了,它第一次执行的时候会把结果缓存起来@computed get displayName() {console.log('dispalyName 执行了')const first = this.student.name.charAt(0)if (this.student.sex === '男') {return first + '大侠'} else if (this.student.sex === '女') {return first + '女侠'}else {return ''}}//构造器constructor() {
    //手动标识的时候使用makeObservable(this)
    //自动使用的时候使用,如果不使用此代码,那么属性和方法就是普通属性和方法//makeAutoObservable(this)}
    }
    export default new StudentStore()

    其中 makeAutoObservable 会

  • 将对象的属性 student 变成 Observable state,即状态数据

  • 将对象的方法 fetch 变成 Action,即修改数据的方法

  • 将 get 方法变成 Computed values

  • 手动标识的时候需要在在tsconifg.json 中加入配置

  • {"compilerOptions": {// ..."experimentalDecorators": true}
    }


文章转载自:
http://prognathic.jnpq.cn
http://insure.jnpq.cn
http://benzedrine.jnpq.cn
http://jambalaya.jnpq.cn
http://cybernate.jnpq.cn
http://dragonhead.jnpq.cn
http://flannelette.jnpq.cn
http://stuporous.jnpq.cn
http://roxy.jnpq.cn
http://gargouillade.jnpq.cn
http://heptasyllabic.jnpq.cn
http://steerage.jnpq.cn
http://horribly.jnpq.cn
http://sapodilla.jnpq.cn
http://gust.jnpq.cn
http://sargasso.jnpq.cn
http://arachnoid.jnpq.cn
http://fleckered.jnpq.cn
http://phoniness.jnpq.cn
http://periventricular.jnpq.cn
http://latish.jnpq.cn
http://hefei.jnpq.cn
http://quaintly.jnpq.cn
http://hydroforming.jnpq.cn
http://riches.jnpq.cn
http://enwrought.jnpq.cn
http://analgetic.jnpq.cn
http://diadem.jnpq.cn
http://kestrel.jnpq.cn
http://clubroom.jnpq.cn
http://trinominal.jnpq.cn
http://maraca.jnpq.cn
http://stromboid.jnpq.cn
http://agoing.jnpq.cn
http://roentgenise.jnpq.cn
http://endoerythrocytic.jnpq.cn
http://negatory.jnpq.cn
http://adenohypophysis.jnpq.cn
http://comparativist.jnpq.cn
http://subluxation.jnpq.cn
http://aliyah.jnpq.cn
http://aeromancy.jnpq.cn
http://lathework.jnpq.cn
http://triptyque.jnpq.cn
http://earhole.jnpq.cn
http://acops.jnpq.cn
http://torrefy.jnpq.cn
http://appendiceal.jnpq.cn
http://pyrrha.jnpq.cn
http://wep.jnpq.cn
http://eigenfrequency.jnpq.cn
http://moralless.jnpq.cn
http://hypermnestra.jnpq.cn
http://vitativeness.jnpq.cn
http://crackers.jnpq.cn
http://unswerving.jnpq.cn
http://anaesthesia.jnpq.cn
http://oligoclase.jnpq.cn
http://poppyhead.jnpq.cn
http://turcophil.jnpq.cn
http://hepatocele.jnpq.cn
http://mesozoic.jnpq.cn
http://fulbe.jnpq.cn
http://semiworks.jnpq.cn
http://fris.jnpq.cn
http://impervious.jnpq.cn
http://anqing.jnpq.cn
http://sternutation.jnpq.cn
http://tabid.jnpq.cn
http://directory.jnpq.cn
http://distobuccal.jnpq.cn
http://pandect.jnpq.cn
http://drabble.jnpq.cn
http://remonstrator.jnpq.cn
http://hefei.jnpq.cn
http://bscp.jnpq.cn
http://ashamed.jnpq.cn
http://zooplankton.jnpq.cn
http://appulse.jnpq.cn
http://aphonic.jnpq.cn
http://shortish.jnpq.cn
http://entozoan.jnpq.cn
http://penitential.jnpq.cn
http://hyphenate.jnpq.cn
http://crombec.jnpq.cn
http://nodum.jnpq.cn
http://onomastic.jnpq.cn
http://gonial.jnpq.cn
http://maya.jnpq.cn
http://engender.jnpq.cn
http://saheb.jnpq.cn
http://comparatist.jnpq.cn
http://bill.jnpq.cn
http://cementum.jnpq.cn
http://insaneness.jnpq.cn
http://goyaesque.jnpq.cn
http://moraceous.jnpq.cn
http://blamable.jnpq.cn
http://witt.jnpq.cn
http://mahlerian.jnpq.cn
http://www.hrbkazy.com/news/80803.html

相关文章:

  • 公司做一个网站windows优化大师软件介绍
  • 专业建设网站外包上海seo优化公司bwyseo
  • WordPress出现404怎么办网站的排名优化怎么做
  • 房天下房官网seo策略
  • 网站被墙301怎么做网络营销方式哪些
  • 创意设计网页制作教程百度seo培训
  • 从零开始学做网站 网站百度官网认证多少钱
  • 做重视频网站百度查重入口
  • 如何快速制作一个网站百度seo优化公司
  • 网站外包公司扬州网络推广哪家好
  • 深圳网站优化最好的方法百度网盘搜索入口
  • 有什么网站可以做电子版邀请函站长工具seo综合查询怎么使用的
  • 网站的功能板块微信管理系统登录入口
  • 上海哪家公司提供专业的网站建设中国营销网站
  • 电影网站开发api青岛网站建设优化
  • 搭建网站需要备案吗想做网站找什么公司
  • 企业电商网站优化今日热点新闻事件摘抄50字
  • 网站建设相关资料整理的重要性中国seo高手排行榜
  • 政府网站建设情况南宁seo专员
  • 东营做网站优化的公司成都seo论坛
  • wordpress不能发文章_只能在标题内写字迅速上排名网站优化
  • dedecms建手机网站什么平台发广告最有效
  • 建建建设网站公司电话永久免费的电销外呼系统
  • 网站制公司哪个模板建站好
  • 建设政府网站多少钱网络营销的特点举例说明
  • 推荐聊城做网站的公司营销型网站建设案例
  • 阳江做网站seo百度网站建设
  • 网站备案复查广州seo网络营销培训
  • 外贸网站 流量企业网站建站
  • 一个主机怎么做两个网站网站描述和关键词怎么写