如何写好JavaScruipt | 青训营

88 阅读2分钟

什么才是好的JavaScruipt代码?

写好JavaScruipt的三个原则:

       各司其职:

              让HTML、CSS、JavaScruipt职能分离;

       组件封装:

              好的UI组件具有正确性、扩展性、复用性;

       过程抽象:

              应用函数式编程思想,即编程范式;

结构表现,行为分离;

功能相同,应当追求项目的简洁性,让代码有更多的可读性,让别人一看就可以懂得代码的含义;

要点:

       应当避免不必要的由JS直接操作的样式;

       可以用Class来表示状态;

       纯展示类交互寻求零JS方案;

 

组件封装:

     组件是指WEB网页上抽出来的一个个包含模板(HTML)、样式(CSS)和功能(JavaScruipt)的单元。好的组件具备封装性、正确性、扩展性和复用性。

结构:HTML

       结构:轮播图是一个典型的列表结构,我们可以用无序列表u1元素来实现。

表现:CSS

       表现:

              使用CSS绝对定位将图片重叠在同一个位置;

              轮播图切换位置使用的状态使用修饰符(modifier);

              轮播图的切换动画使用CSS transition

行为:JS

       行为:API

       Slider:

              +getSeleceteditem();

              +getSeleceteditemIdex();

              +slideTo();

              +slideNext();

              +slidePrevious()

       行为:控制流

              使用自定义事件来解耦(技巧)

组件装封方法总结:

       基本方法:

              结构设计;

              展现效果;

              行为设计:

                     API(功能)

                     Event(控制流)

改进组件:

       定位主要问题

       重构组件:组件插件化

              解耦:

                     将控制元素抽取成插件;

                     插件与组件之间通过依赖注入方式建立联系;

       插件抽象,可以新增相关插件

组件框架:

       定义组件,控制插件

       抽象:将组建通用模型抽象出来

      

组件封装总结:

       组件设计的原则:

              封装性,正确性,扩展性,复用性;

       实现组件的步骤:

              结构设计,展现效果,行为设计;

       三次重构:

              插件化,模板化,抽象化(组件框架);

       另外,可以考虑组件的改进,探索进一步改进的空间;

 

原则三:

过程抽象:

       用来处理局部细节的一些方法;

       函数式编程思想的基础应用;

       为了能够只执行一次的需求覆盖不同的事件处理,我们可以将需求剥离出来,这个过程称之为过程抽象

高阶函数:

HOF:

       以函数作为参数;

       以函数作为返回值;

       常用于作为函数装饰器;

       常用高阶函数:

       Once;Throttle(节流函数);Debounce(防抖函数);Consumer(延时调用函数);Iterative

与纯函数的对比:

       纯函数:输入不变时,结果单一且确定不变;

       非纯函数:与调用条件有关,输入不变,结果也会有变化;

 

编程范式:

       命令式与声明式:

       命令式:怎么做

       声明式:做什么

代码质量优化之路