关于Vuex的一个idea

Posted by Panda2134's Blog on March 27, 2020

(大概是上带学后第一篇计算机相关?)

启发

Vuex和Redux类似,采用 state - mutation - action 的架构,保证前端状态树每个版本均有记录。其中state是只读的,而mutation只能容纳同步操作,action可以容纳异步操作。

在spa开发中,只要项目初具规模,从后端读取状态树就是一个不可或缺的环节。实现的方法有很多种。常见的方法是使用axios请求拦截器处理认证,同时将api请求封装成相应的函数,再在Vuex action修改状态树时调用api进行更新。总的来说有两个部分:一是初始状态的读取,二是随着用户交互对于状态的更新。

前后端分离要求不同端的开发者采用相同的API进行对接。传统的模式为,先商讨定 API,再在不同端为此 API 开发代码。在开发中,有许多重复的(boilerplate)部分,如请求体的解析、应答的构建、对于 API 不同返回状态的处理等。

如果能把前后端交互相统一,使得SPA应用中与服务器同步当前状态就和处理本地 Vuex 状态一样简单,势必可以大量减少样板代码,方便复杂状态应用的开发。实现这一点,对于状态树深、状态交互复杂的项目开发有很大的帮助。这需要对后端ORM进行处理抽象、权限控制,并且在SPA中实现状态的按需更新,即只更新状态树中变动的部分。

先在此记录这个idea,考虑学习Vue和Vuex等源码后继续。