持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情
我们希望建个b端的统一层,希望这个统一层提供个api,能把常用的b端功能都收敛进去。
我们希望做一个什么事呢,提供一个api,然后直接挂全局上,所有的内容都可以用到上面的能力,有一个统一的对象,去处理我们b端常用的一切能力。
主要包含哪些能力呢:
- 常用的基础能力,如打点、客户端兼容之类的
- 组件能力,组件的话包括常用的开源组件以及自己编写的组件
我们怎么定义b端前端的解决方案呢? 面临不同的业务、技术场景,我们都有成熟的、可复制的、低成本的方案去实现 对于现有的场景,实现方式是否可以归类为我们的解决方案
当然,这个问题,我们做设计的时候一定到时刻放在心上,多去做思考,不断发掘
接着看统一层建设:
- 基础能力上,就是做一下封装,然后暴露出来,总的来说成本可控
- 组件部分就比较难,首先就是增量引用的功能,我们需要做到按需引用,那么问题来了,如果我们的组件本身支持按需引用呢,这个就需要我们实现一个二层的按需引用,如
import {a.b} from 'sdk'
但是这样的话有一个问题,首先是现在都是用ts开发的项目,这种隐式的变换如何能保证ts能够正确的解析
我们有两个方案:第一个就是把所有的内容都copy进sdk里,但是这其实有个维护成本的问题,我们可以通过脚本去解决;第二个就是还是复用原包里的内容,这样就需要我们去调研能否通过webpack层去实现它
另外一个就是与eslint规则其实是冲突的,我们定义了一个东西,为啥不使用它呢。这个其实是有点尴尬的,暂时没想到既能兼容eslint又能用低成本完成骚操作的办法。