js特点 |青训营笔记

69 阅读2分钟

这是我参与第五届青训营伴学笔记创作活动的第十一天

组件封装:

html结构:使用无序列表实现

css:绝对定位,将图片定位在同一位置,切换状态使用修饰符midifier,

使用css过渡动画实现鼠标悬停时转换图片

js:实现切换行为。

定义类,在类中定义如下API:(设计接口进行操作)

getSelectedItem():得到当前选择的图片元素

getSelectedItemIndex():得到当前选中的图片在列表中的位置

slideTo():点击跳转至目标图片

slideNext():点击切换下一张图片

slidePrevious():点击切换上一张图片

使用控制流添加控件:(用自定义事件来解耦)

小圆点的状态和图片切换的状态是一致的,进行状态绑定。

重构:组件化

  • 重构构造函数的代码,使组件插件化:将控制元素抽取成插件,插件与组件之间通过依赖注入方式建立联系
  • 抽象出三个功能:四个小圆点、左侧图标、右侧图标
  • 修改功能时将组件注册到轮播图的插件中

重构:模板化

  • 将HTML 组件和插件模板化 更易于扩展
  • 将内容放入rander内进行渲染。
  • action:内容初始化

抽象 将组件的通用模型抽象出来


过程抽象 函数式编程的基础应用

如果一个函数被调用后返回另一个函数,那么称其为高阶函数。函数作为参数,函数作为返回值,常用于作为函数装饰器。

常用的高阶函数:

  • Once:令事件只执行一次
  • Throttle:截留函数
  • Debounce:防抖
  • Consumer:每隔一段时间进行一次函数调用 延时调用
  • Iterative:可迭代方法

为什么要使用高阶函数?

大大减少使用非纯函数的可能性。在系统中,非纯函数越多,系统的可维护性越差。

声明式语言比命令式语言的可扩展性更好。