与提供数据的服务端明确职责
活动内部需要的数据通常由服务端提供,此时需要明确字段的粒度。
比如:邀请新用户得xxx元奖励
xxx是变量,通常会作为一个字段。
那么「邀请新用户得 元奖励」这段文案呢?活动进程中,有没有可能PM发现这段文案效果不好想修改。
如果前端写死了文案,要修改意味着组件提供方(你)与业务接入方都有重新上线的成本。
所以,如果评估有修改的可能,更好的方式可能是将这段文案下发为类似结构:
- data: {
- title: "邀请新用户得{{bonus}}元奖励",
- params: {
- bonus: 123
- }
- }
为了让活动SDK组件轻量,SDK内使用的能力(比如:数据请求、登录、错误监控)通常由宿主环境(接入组件的业务)提供。
这类能力分为两类:
- 运行时业务方能提供的方法
- 业务方依赖的库提供的能力
其中「运行时方法」可以作为props传给SDK组件,比如登录方法。
库的能力,SDK需要将其定义为peerDependencies,比如React、ReactDOM。
- React技术栈需要确定SDK使用的React版本和业务使用的React版本需要同时在v16.14之前或之后,以防JSX被编译为不同结果(_jsx.createElement与React.createElement)
与PM敲定活动流程
这一步和产品撕过的朋友都懂。
组件开发
完成了职责划分,产出技术文档,接下来就能开始「组件开发」了。
此时有两点需要注意:
完善的类型提示
使用ts编写组件,导出类型声明文件,可以极大规范业务方接入,减少接入沟通成本。
错误边界
如果SDK组件抛出错误,导致接入的页面崩溃了,妥妥的p0级bug。
所以,一定要将SDK的错误catch在组件内部。
对于React组件,用ErrorBoundary包裹是必不可少的。