我必须使用React Native开发5种不同的移动应用程序。 应用程序背后的业务需求是相同的,它们应该连接到相同的RESTful api,但是每个应用程序都有不同的UI / UX来满足品牌要求。 为应用程序实现极端可重用的业务逻辑代码的最佳实践是什么。
我应该将Redux作为外部节点包并在每个应用程序中导入它,还是应该将应用程序合并到一个巨大的代码库中,并使用不同的nodejs脚本来构建它们中的每一个?
答案 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: {
}
})
}
我最近完成了一个应用程序,其中我使用了上述方法,它就像一个魅力。