小程序开发策略:数据统计与工程
数据统计是目前分析用户行为的常用方式,小程序也是不可或缺的。 widget使用的曝光和点击数据嵌入点其实和h5原理是一样的。然而,跟踪是与业务逻辑无关的需求。如果我们为每个点击事件和每个生命周期添加不同的跟踪代码,就会打乱正常的业务逻辑,使代码变得臃肿。作者提供了以下几个解决数据埋点的思路:
设计一个埋点sdk
小程序的代码结构是每个Page有一个Page方法,接受一个包含生命周期函数的业务而 data 逻辑
对象包装了这个数据层,并使用小程序的底层逻辑实现了页面的业务逻辑。通过这个我们可以想出封装Page的想法,修补生命周期和点击事件,并在不干扰业务逻辑的情况下混入隐藏代码。只需进行一些简单的配置即可埋掉隐藏点。简单的代码实现如下:
代码仅供理解思路
page = function(params) {
let keys = params.keys()
keys.forEach(v => {
if (v === 'onLoad') {
params[v] = function(options) {
stat() //曝光埋点代码
params[v].call(this, options)
}
}
else if (v.includes('click')) {
params[v] = funciton(event) {
let data = event.dataset.config
stat(data) // 点击埋点
param[v].call(this)
}
}
})
}
复制代码
这个思路不仅适合埋点,还可以用于全局异常处理、统一处理请求等。
分析接口
对于一些特殊企业,我们可以使用接口嵌入点
,什么是接口嵌入点?很多情况下,我们的一些API并不是在多个地方调用,而是只在特定的页面上调用。通过这个思路我们可以分析,如果请求了接口,那么就触发了这个行为,完全可以通过服务来实现。埋点数据可以从最终测井中获得,但这种方法有很大的局限性,而且是一个获得分析结果的过程。可能是错误的,但是可以作为一个思路来理解。
微信适配数据分析
微信本身就提供了数据分析功能。微信本身提供了两种数据分析方式:常规分析和自定义分析,可以在小部件后台进行配置。借助小程序数据助手
可以轻松查看该小程序。
小程序-工程化
工程化是什么
在现在的前端开发过程中,工程化是不可或缺的一部分。那么构建小部件需要做什么呢?首先我们来看看目前的情况 小程序开发需要解决哪些问题:
- 不支持Css预编译器。作为常见的css解决方案,无论是minor、sass还是stylus,都可以提高css效率
- 不支持npm包的引入(这是从微信公开课上听说的,微信已经准备好支持了)
- 不支持ES7等后续js功能,且人性化的async wait等功能无法使用
- 不支持引入外部字体文件,仅支持base64
- 没有这样的代码检查工具如eslint
方案选择
目前使用的技术方案,webpack、rollup、package等,都是常用来打包处理单页面应用,而小程序本质上就是“多页面应用”还有一些具体的配置。根据要解决的问题,无非就是文件的编译、修改和复制。针对这些需求,我们想到了基于流的gulp
,它非常适合处理,而且比webpack更适合配置多页面应用。简单的。因此,推荐使用gulp
具体开发思路
通过gulp任务实现:
- 实时编译较少文件到对应目录运行时文件,引入aseync文件编译将字体文件转为base64并生成对应的css文件,方便使用
- 引用npm包的依赖分析,将npm包打入文件中,复制到对应目录
- 查看代码规范
上面的实现实际上并不是很棘手,但在本例中它只是一个干净的 gulp 构建脚本和一个商定的目录。每次新的小程序都会复制这个脚本进行处理吗?显然不适合,那么如何真正实现小程序技术
呢?我们可能需要一个简单的脚手架。脚手架需要支持的功能:
- 支持新项目,创建Page和创建组件
- 支持嵌入构建脚本
- 支持小程序的发布,还可以想办法连接Jenkins Do这样的工具持续集成(后面会提到小程序的持续集成)...
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。