如何在React Native中编写和建模可重用的业务逻辑

时间:2017-12-06 11:00:55

标签: react-native redux react-redux code-reuse

我必须使用React Native开发5种不同的移动应用程序。 应用程序背后的业务需求是相同的,它们应该连接到相同的RESTful api,但是每个应用程序都有不同的UI / UX来满足品牌要求。 为应用程序实现极端可重用的业务逻辑代码的最佳实践是什么。

我应该将Redux作为外部节点包并在每个应用程序中导入它,还是应该将应用程序合并到一个巨大的代码库中,并使用不同的nodejs脚本来构建它们中的每一个?

1 个答案:

答案 0 :(得分:0)

我的建议是将业务逻辑分开。当您计划使用Redux时,您可以将模型和服务创建到单独的包中,并将其导入到您需要的任何位置。

模型 - 定义状态,包含减少器和效果。 服务 - 调用RestFul API的实际函数。

模型< - >服务方法非常有用,因为它们根本不做任何UI工作。

请参阅下面的模型和服务示例:

<强>型号:

import {
  addPayment
} from '../services/paymentService'

import {
  updateAge
} from '../services/profileService'

export default {
  namespace: 'myProfile',
  state: {
     age
     },

  reducers: {
    set: (state, {payload: details}) => {
      return ({...state, ...details})
    },
  },
  effects: {
    *getAge (action, { call, put, simplePut }) {
      const {payload: age} = action
      try {
        const res = yield call(upadteAge, age)
        const { status } = res
        if (status === 200) {
          const json = yield res.json()
          yield simplePut('set', json)
        } 
      } catch (error) {
        console.log(error)
      }
    },
  }

<强>服务

export function updateAge ({age}) {
  return fetch('apiurl?age=' + age, {
    method: 'POST',
    headers: {
    }
  })
}

我最近完成了一个应用程序,其中我使用了上述方法,它就像一个魅力。