前言今天的主题是NutUIPicker组件的设计与实现。Picker组件是NutUI的一个选择器组件。它用于显示一系列值集。用户可以滚动以选择集合中的项目,也可以支持多个系列的值组供用户单独选择。下面用一张效果图来看看这个组件实现了哪些功能。说到NutUI,可能有些人不是很了解,我们先简单介绍一下。NutUI是一个京东风格的移动端Vue组件库,开发和服务于移动Web界面的企业级前中后端产品。通过NutUI,您可以快速构建风格统一的页面,提高开发效率。目前已有50+组件,广泛应用于京东各项移动服务。接下来,我们将通过以下话题来展开今天的内容:为什么要封装组件?NutUIPicker组件实现原理遇到的问题1.为什么要封装组件当业务发展到一定规模时,会遇到很多类似的功能接口,每次重新开发都会影响开发效率,而这些类似的代码可能有一些潜在的问题。一旦暴露,我们需要花费大量时间处理业务中的相同代码。如果我们将这些相同的代码合理化分离,封装组件,进行多次调用,我们会发现开发效率实现了质的飞跃。通过一张图来看看封装组件的好处:封装组件不仅可以让协同开发变得高效和规范,同时组件化的前端开发方式也可以为后续的业务扩展带来更多的便利。二、NutUIPicker组件的实现原理该组件在日常业务需求中比较常见。它不仅可以承载简单的选项卡功能,还可以满足更复杂的日期时间选择功能,或者级联地址选择功能。我们还有一个基于picker组件的日期时间组件的封装,有兴趣的可以访问NutUI组件库查看。通过文章的前言,我们对picker组件实现了哪些功能有了一个大概的了解。它使用类似于轮子的三维旋转来选择选择集中的项目。我们先来看一下组件源码的目录结构:我们主要关注最后三个文件。本着就近原则,我们将相关文件放在同一个目录下。基于单一职责的原则,我们将组件颗粒化,保证组件尽可能的简单和通用。picker组件分为父组件picker.vue和子组件picker-slot.vue,子组件只负责轮子交互处理。父组件负责处理业务类逻辑。子组件roller部分1.先看dom部分的分工
