用 vue 写前端业务时候,我经常会遇到什么内容需要提出来写组件的问题。如果业务中这个组件比较复杂,复用性高,我肯定会把他拿出来写个组件复用。 我现在有一个场景想问下大家会怎么写:一个列表页有多个按钮,都是展开一个抽屉进行表单填写的,一共有七八个按钮。我把抽屉的框架拿出来写个组件(比如标题,确认框这样),内部的表单内容再根据业务不同单个文件引入。同事认为这七八个表单有两三个还有相似的地方,还是可以复用,还要继续把相似的表单继续拿出来写个组件用。 我觉得那七八个页面已经很简单,我直接写逻辑会更清晰一些。这种情况哪种才是对的呢?
抽离的话,最好先问问自己: 1. 是否有逻辑上共用并且依赖 UI 交互,比如需要弹出框的确认和关闭按钮,都会有异步关闭。单把这个 dialog 封装成一个组件。 2. 这个逻辑共用但不依赖 UI 交互,可以抽成 hooks 3.是否可以把内部业务,拆成 slot 。 你这个可以写个公用 wrap 组件,然后里面再 slot 插槽不同的业务组件。个人的愚见,这样是我能想到的最好了。蹲下其他大佬的最优解。