mobx模块化

1.定义独立的countes模块和list模块

2.在index.js导入 拆分的模块

3.使用React的 useContext机制导出统一的useStore方法

 

代码示例:

//countesStore.js

import { makeAutoObservable } from 'mobx'

class CountesStore {
  // 1.定义数据
  count = 0
  // 2.数据响应式处理
  constructor() {
    makeAutoObservable(this)
  }
  // 3.定义一个函数
  addcount = () => {
    this.count++
  }

}

export { CountesStore }

listStore.js

import { computed, makeAutoObservable } from 'mobx'

class ListStore {
  // 1.定义数据
  list = [1, 2, 3, 4, 5, 6]
  // 2.数据响应式处理
  constructor() {
    makeAutoObservable(this, {
      filterList: computed
    })
  }
  // 计算属性
  get filterList () {
    return this.list.filter(item => item > 3)
  }
  // 3.定义一个函数
  addList = () => {
    this.list.push(0, 7, 8)
  }

}
export { ListStore }

 index.js

import React from 'react'
import { CountesStore } from './countesStore'
import { ListStore } from './listStore'

class RootStore {
  constructor() {
    this.countesStore = new CountesStore()
    this.listStore = new ListStore()
  }

}

// 实例化store
const rootStore = new RootStore()
const context = React.createContext(rootStore)

// 导出useStore
const useStore = () => React.useContext(context)

export { useStore }

App.js

// 1.countesStore
import { useStore } from './store/index'
// 2.导入中间连接件,使数据完成响应式
import { observer } from 'mobx-react-lite'
function App () {
  // 解构赋值,需要哪个就使用哪个,防止破坏响应式
  const { countesStore } = useStore()

  return (
    <div className="App">
      {/* 渲染数据 */}
      {countesStore.count}

      {/* 对数据进行修改 */}
      <button onClick={countesStore.addcount}>++</button>
    </div>
  )
}

// 包裹App组件
export default observer(App)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
React前端工程化是指在React项目开发过程中,通过一系列的工具和规范来提高开发效率、代码质量和项目可维护性的一种方法。下面是React前端工程化的几个重要方面: 1. 代码组织:合理的组织项目代码结构,可以按照功能或模块进行划分,使得代码易于维护和扩展。 2. 模块化开发:使用ES6的模块化语法,将项目拆分为多个独立的模块,每个模块负责特定的功能,提高代码的可复用性和可维护性。 3. 构建工具:使用构建工具(如Webpack、Parcel等)来自动化构建过程,包括代码编译、打包、压缩等,提高开发效率。 4. 组件化开发:将页面拆分为多个可复用的组件,每个组件负责特定的功能,通过组合不同的组件来构建页面,提高代码的可维护性和可复用性。 5. 状态管理:使用状态管理库(如Redux、Mobx等)来管理应用的状态,使得状态变更可追踪、可预测,方便进行状态共享和数据流控制。 6. 自动化测试:使用自动化测试工具(如Jest、Enzyme等)编写单元测试、集成测试和端到端测试,保证代码质量和功能的稳定性。 7. 代码规范:使用代码规范工具(如ESLint、Prettier等)对代码进行静态检查和格式化,统一团队的代码风格,提高代码质量和可读性。 8. 持续集成与部署:使用持续集成工具(如Jenkins、Travis CI等)将代码自动构建、测试和部署到服务器,实现快速迭代和持续交付。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值