京 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 的接口。基于 VueonMounted、TarouseDidShow和 Pinia$subscribe,二次封装登录回调 hooks、用户信息回调 hooks,保证后续请求能带上 token。 - 分享统一拦截:每个页面都要分享,部分页要自定义,且默认都要带参。基于 Taro
useShareAppMessage二次封装,统一拦截配置,减少重复工作。 - 点击先授权:基于 Pinia 封装授权函数。按钮点击先走授权,未授权弹窗,已授权再执行原点击逻辑。
项目成果
- 搭好多端可扩展的 Taro + Vue 3 工程和代码规范
- 登录、分享、授权抽成公共 hooks / 函数,减少各页重复逻辑
- 解决进入即并发请求与 token 时序问题
可能会问的问题
一进小程序就要打多个要带 token 的接口,token 还没回来怎么办?
进入即 wx.login + 登录接口。登录回调 hooks、用户信息回调 hooks 基于 onMounted、useDidShow 和 Pinia $subscribe,保证后续请求能带上 token。
每个页都要分享,怎么少写重复配置?
基于 Taro useShareAppMessage 统一拦截,默认带参,需要自定义的页再覆盖。
按钮要先授权再执行原逻辑,怎么做成通用的?
Pinia 封装授权函数:未授权弹窗,已授权再走原点击。