公司接下来要做的工作主要改动点,是在公司一位大佬写的代码上做迭代。领导给我们时间熟悉代码。之前的我一位把项目主流程还有一些关键的组件撸一遍就欧克了,万万没想到。。。。。。,看来其中一个小块的逻辑,收益良多。
因为每个产品条线或者说每个条线下面的产品不一样,展示的内容、排版、字段规则都不一样,但又有一些相似之处;所以大佬把各个代码片段都抽离成一个个的小组件。每个小模块的页面也就各取所需的拼装起来。当时看完的心情就很有成就感,也迈迈对这位大佬的逻辑思维能力肃然起敬。之前只是知道他玩魔方贼溜,万万没想到。。。。。;但是更开心的是自己一点点的也能够理清楚。下面来梳理下,今天看到的之前少有用到的知识点。有问题欢迎指出~~
- provide/inject
祖先级别的组件向子孙组件传递数据的方式。只要他们的上下级关系存在,那就能随时获取到。
provide: {} || () => {}
inject: [string] - extends
作用同mixins.用于扩展另一个组件。
不同点:
2.1. extends只接受一个对应,多个会不响应。这和mixins不同,它是以数组的形式接受,可传递多个。
2.2. 执行顺序上,extends > mixins > 组件自身 - reduce
这个是数组的一个遍历方法。不改变原数组。在某些时候比for、foreach、filter方便太多;比如说,用于求和、最大值、获取某个复杂的多维数组的指定字段,以数组的形式返回。
以数组求和为例:
arr1.reduce((pre, cur, index, arr) => pre+num, 0)
注意,reduce的第二个参数,可有可无。无的话,从0开始,有的话,从1开始。 - map
一些场景需要数据处理且不改变原数组的i情况下返回新数组,那map绝对是最佳选择;结合filter、map可以处理简化很多代码来获取到想要的数据结构。
arr1.filter(item => item.code).map(item => item.code) // 结果返回code组成的数组。
------------忠于自己 two days