fes.js icon indicating copy to clipboard operation
fes.js copied to clipboard

fes design for vue3

Open winixt opened this issue 5 years ago • 2 comments

fes.js 现状

Fes 本身有存在一些设计上的不足。我们把太多的能力强耦合进 fes-core 里面,例如项目布局、全局状态管理、权限管理等。因为是和 fes-core 强耦合的,有时候想换个布局方式变得不可能。有些项目不需要全局状态管理也被强打包进去。或者想扩展一些能力,例如增加换肤,也只能去改 fes-core,扩展能力不足。fes-plugin 的设计也有类似的问题,因为前期考虑的一些不足,和 fes-core 也有强依赖管理,新增、移除plugin都很麻烦。

借机Vue3.0的升级,Fes 准备进行一次大的重构,提升 Fes 的扩展能力。

fes.js for vue3

重新设计之后我们希望 fes-core 更轻量,大部分能力通过 plugin 去扩展,然后把 storage、DOM 操作函数等功能函数独立出来作为一个 utils 库,让“上帝的归上帝,凯撒的归凯撒”。

那么 fes-core 应该承载的职责是什么呢?

我们认为有三个就够了,一个应用的初始化,一个路由管理,一个 plugin 管理。项目布局、权限管理、国际化等等全部通过插件去实现。这样做的好处在于,如果用户想换一种布局方式,换一个插件就好了。如果用户想实现换肤的能力,写一个插件就好了,不需要改动 fes-core,这样也使得 Fes 更健壮,能力更强大。

大体框架已经搭好。在 vue3 分支。

欢迎大家参与进来一起完善。

winixt avatar Sep 30 '20 11:09 winixt

fes-ui 能不能加入 theme 相关配置 参照 https://element.eleme.io/#/en-US/theme

plh97 avatar Oct 07 '20 07:10 plh97

@pengliheng 升级 vue3 后会加上

winixt avatar Oct 08 '20 03:10 winixt