We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vuex 注册、声明、消费状态的方式繁琐,并且没有类型提示,开发体验很差。
原逻辑中的 vuex 会将状态全部存到一颗状态树下,持久化后数据全存在 storage 的一个键值对下,对调试状态不友好。
新人上手项目要先熟悉 vuex,心智负担重。
本次改动一方面为了跟上前端技术的步伐,另一方面能降低项目维护成本和新人上手难度。
本次改动是纯前端的技术性改动,计划将 vuex 全部替换成 pinia,将状态管理逻辑提取成 hook。
主要影响三处
src/store
src/service
现版本中,部分代码的业务逻辑(状态管理)和请求函数强耦合(具体见 updateDateStateWithSession 函数),需要做拆分。要想剥离掉 vuex,必须先把状态的维护和请求函数的声明拆开,具体的拆分方案如下
updateDateStateWithSession
services/request.ts
src/hooks
计划以 src/services 下的模块为单位进行重构。下面是执行重构的方案
src/services
request
pinia
defineStore
useStore
service
在体验版过渡两个 minor 版本后,作为 patch 版本上线。先在办公室灰度 2 周,后缓慢放量给用户。
The text was updated successfully, but these errors were encountered:
按照 src/services/services 下的模块来分工
src/services/services
@j10ccc
canteenService.ts
libraryService.ts
lostfoundService.ts
systemService.ts
authService.ts
suitService.ts
@xixiIBN5100
yxyService.ts
userService.ts
zfService.ts
Sorry, something went wrong.
xixiIBN5100
Successfully merging a pull request may close this issue.
方案介绍
背景
vuex 注册、声明、消费状态的方式繁琐,并且没有类型提示,开发体验很差。
原逻辑中的 vuex 会将状态全部存到一颗状态树下,持久化后数据全存在 storage 的一个键值对下,对调试状态不友好。
新人上手项目要先熟悉 vuex,心智负担重。
价值
本次改动一方面为了跟上前端技术的步伐,另一方面能降低项目维护成本和新人上手难度。
目标
本次改动是纯前端的技术性改动,计划将 vuex 全部替换成 pinia,将状态管理逻辑提取成 hook。
影响的模块
主要影响三处
src/store
下src/service
下方案设计
技术方案
现版本中,部分代码的业务逻辑(状态管理)和请求函数强耦合(具体见
updateDateStateWithSession
函数),需要做拆分。要想剥离掉 vuex,必须先把状态的维护和请求函数的声明拆开,具体的拆分方案如下services/request.ts
),本次计划将所有请求逻辑替换成的纯请求函数,仅仅保留请求入参,响应的返回。原调用updateDateStateWithSession
来实现状态更新的逻辑,拆分到 hook 中实现。src/hooks
下创建具体的模块文件夹来实现。计划以
src/services
下的模块为单位进行重构。下面是执行重构的方案src/store
下的模块。request
实现。pinia
复现 store 的 getter/setter 逻辑到 hook,用defineStore
写一个useStore
。service
下的业务逻辑、消费请求函数以及刚刚声明的useStore
到 hook。灰度方案
在体验版过渡两个 minor 版本后,作为 patch 版本上线。先在办公室灰度 2 周,后缓慢放量给用户。
The text was updated successfully, but these errors were encountered: