Skip to content

京 A 小程序(2022.04 – 2022.07)

项目简介

嘉士伯集团旗下正在运营的会员类小程序,通过会员积分构建私域。项目用 webpack + Taro 构建,后期可能多端发布。

微信小程序搜索:京 A 小程序。

技术栈

Vue 3 / Taro / NutUI / Pinia / Axios / TypeScript / Webpack

个人职责

负责项目选型和框架搭建:因后期可能多端发布,选用 Vue 3 + Taro + Webpack + TypeScript;NutUI 做页面布局;Pinia 管理登录、授权和全局共用数据;ESLint + Stylelint 规范代码风格,Husky + commitlint 规范提交。

负责项目公共组件库开发:登录回调 hooks、用户信息回调 hooks、分享封装、授权函数。

技术亮点

  • 登录与并发请求:小程序静默授权,进入即 wx.login + 登录接口拿 token;同时会打多个需要带 token 的接口。基于 Vue onMounted、Taro useDidShow 和 Pinia $subscribe,二次封装登录回调 hooks、用户信息回调 hooks,保证后续请求能带上 token。
  • 分享统一拦截:每个页面都要分享,部分页要自定义,且默认都要带参。基于 Taro useShareAppMessage 二次封装,统一拦截配置,减少重复工作。
  • 点击先授权:基于 Pinia 封装授权函数。按钮点击先走授权,未授权弹窗,已授权再执行原点击逻辑。

项目成果

  • 搭好多端可扩展的 Taro + Vue 3 工程和代码规范
  • 登录、分享、授权抽成公共 hooks / 函数,减少各页重复逻辑
  • 解决进入即并发请求与 token 时序问题

可能会问的问题

一进小程序就要打多个要带 token 的接口,token 还没回来怎么办?

进入即 wx.login + 登录接口。登录回调 hooks、用户信息回调 hooks 基于 onMounteduseDidShow 和 Pinia $subscribe,保证后续请求能带上 token。

每个页都要分享,怎么少写重复配置?

基于 Taro useShareAppMessage 统一拦截,默认带参,需要自定义的页再覆盖。

按钮要先授权再执行原逻辑,怎么做成通用的?

Pinia 封装授权函数:未授权弹窗,已授权再走原点击。