Code前端首页关于Code前端联系我们

小程序开发策略:数据统计与工程

terry 2年前 (2023-09-23) 阅读数 149 #移动小程序

数据统计是目前分析用户行为的常用方式,小程序也是不可或缺的。 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并不是在多个地方调用,而是只在特定的页面上调用。通过这个思路我们可以分析,如果请求了接口,那么就触发了这个行为,完全可以通过服务来实现。埋点数据可以从最终测井中获得,但这种方法有很大的局限性,而且是一个获得分析结果的过程。可能是错误的,但是可以作为一个思路来理解。

微信适配数据分析

微信本身就提供了数据分析功能。微信本身提供了两种数据分析方式:常规分析和自定义分析,可以在小部件后台进行​​配置。借助小程序数据助手可以轻松查看该小程序。

小程序-工程化

工程化是什么

在现在的前端开发过程中,工程化是不可或缺的一部分。那么构建小部件需要做什么呢?首先我们来看看目前的情况 小程序开发需要解决哪些问题:

  1. 不支持Css预编译器。作为常见的css解决方案,无论是minor、sass还是stylus,都可以提高css效率
  2. 不支持npm包的引入(这是从微信公开课上听说的,微信已经准备好支持了)
  3. 不支持ES7等后续js功能,且人性化的async wait等功能无法使用
  4. 不支持引入外部字体文件,仅支持base64
  5. 没有这样的代码检查工具如eslint

方案选择

目前使用的技术方案,webpack、rollup、package等,都是常用来打包处理单页面应用,而小程序本质上就是“多页面应用”还有一些具体的配置。根据要解决的问题,无非就是文件的编译、修改和复制。针对这些需求,我们想到了基于流的gulp,它非常适合处理,而且比webpack更适合配置多页面应用。简单的。因此,推荐使用gulp

具体开发思路

通过gulp任务实现:

  1. 实时编译较少文件到对应目录运行时文件,引入aseync文件编译将字体文件转为base64并生成对应的css文件,方便使用
  2. 引用npm包的依赖分析,将npm包打入文件中,复制到对应目录
  3. 查看代码规范

上面的实现实际上并不是很棘手,但在本例中它只是一个干净的 gulp 构建脚本和一个商定的目录。每次新的小程序都会复制这个脚本进行处理吗?显然不适合,那么如何真正实现小程序技术呢?我们可能需要一个简单的脚手架。脚手架需要支持的功能:

  1. 支持新项目,创建Page和创建组件
  2. 支持嵌入构建脚本
  3. 支持小程序的发布,还可以想办法连接Jenkins Do这样的工具持续集成(后面会提到小程序的持续集成)...

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门