这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天。 写好JS的一些原则有:各司其职---让HtML,CSS和JavaScript职能分离。 组件封装---好的UI组件具备正确性,扩展性,复用性。 例子:用原生JS写一个电商网站的轮插图,应该怎么实现? 结构设计:HTML---轮播图是一个典型的列表结构,我们可以使用无序列表
- 元素来实现。
表现:CSS---1.使用CSS绝对定位将图片重叠在同一个位置。2.轮播图切换的状态使用修饰符(modifier)3.轮播图的切换动画使用CSS transition。
行为:JS---API设计应用保证原子操作,职责单一,满足灵活性。
行为:控制流---使用自定义事件来解释。
总结:结构设计,展示效果,行为设计(API,Event)
解耦---将控制元素抽取成插件,插件与组件之间通过依赖注入方式建立联系。
组件设计的原则:封装性,正确性,扩展性,复用性。
实现组件的步骤:结构设计,展示效果,行为设计。
三次重构:插件化,模版化,抽象化(组件框架)。
组件是指Web页面上抽出来一个个包含模版(HTML),功能(JS)和样式(CSS)的单元。
好的组件具备封装性,正确性,扩展性,复用性。
过程抽象----用来处理局部细节控制的一些方法;函数式编程思想的基础应用。
例子:操作次数限制---一些异步交互,一次性的HTTP请求。
高阶函数---以函数作为参数,以函数作为返回值,常用于作为函数装饰器。
Once---为了能够让“只执行一次”的需求覆盖不同的事件处理,我们可以将这个需求剥离出来。这个过程我们称为过程抽象。
常用高阶函数(Once,Throttle,Debounce,Consumer,Iterative)
编程范式例子--Toggle-命令式,Toggle-声明式,Toggle-三态。
总结:过程抽象/HOF/装饰器,命令式/声明式。
当年的Left-pad事件槽点:NPM模版粒度,代码风格,代码质量/效率