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