那年初夏|面向函数式编程,前端的必然发展趋势
面向对象编程世间万物皆为对象
“世间万物皆为对象” , 这是我们开始学习编程语言的时候 , 老师大都会讲的一句话 , 顾名思义 , 就是我们常说的面向对象编程 。 在现如今流行的编程语言中 , 大多数的编程语言都是面向对象编程的语言 , 还有一些面向过程的编程 , 如大学都会学的c语言 。
c语言
虽然Javascript是一门脚本语言 , 但是它也不例外 , 也是一门面向对象的编程语言 。 从初期基于原型链的面向对象编程 , 到现在es6的class面向对象编程 , 越来越像Java、C#等强类型语言的面向对象 。
函数式编程发展Javascript经过多年的发展 , 衍生出了很多的类似Vue、React、Angular等优秀框架 , 这些框架经过多年的发展 , 进化得也比较快 。 它们都用相同的进化特点 , 都拥抱了函数式编程 。
- 比如近些年React推出了Hook函数式编程
import React, { useState } from 'react';function Example() {// 声明一个新的叫做 “count” 的 state 变量const [count, setCount] = useState(0);return (You clicked {count} times
setCount(count + 1)}>Click me);}如果使用传统的class方式 , 当业务变得复杂之后 , 组件之间共享状态变得频繁 , 此时组件将变得非常难以理解和维护 , 复用状态逻辑更是难上加难 。 使用hook之后 , 无论业务怎么变化 , state只会存在自己的组件 , 对其它组件的影响非常的小 。- 再比如前不久Vue发布了3.0版本的源码 , 3.0源码也弃用了基于原型链的面向对象编程 , 全部采用函数式编程 。
export function reactive(target: T): UnwrapNestedRefsexport function reactive(target: object) {// if trying to observe a readonly proxy, return the readonly version.if (target && (target as Target)[ReactiveFlags.IS_READONLY]) {return target}return createReactiveObject(target,false,mutableHandlers,mutableCollectionHandlers)}// Return a reactive-copy of the original object, where only the root level// properties are reactive, and does NOT unwrap refs nor recursively convert// returned properties.export function shallowReactive(target: T): T {return createReactiveObject(target,false,shallowReactiveHandlers,shallowCollectionHandlers)}...从这两大框架的向函数式编程的靠拢 , 说明函数式编程肯定是有可取之处 , 要不然也不会拼命使用函数式编程的 。 下面就来说一下函数式编程的好处吧 。函数式编程的优点
- 复用性
- 防污染
推荐阅读
- 南方PLUS|高新区面向全市征集30项以上技术需求,@佛山企业
- 那年乌衣郎|磨难之中无忘希望--刘备坎坷而又坚毅的一生
- 大宗交易|方洪波减持13亿元,美的:个人资产配置需要,三季度基本面向好
- 那年初夏|15.3TB容量的消费级固态硬盘来了,售价和一块CPU差不多
- 那年初夏|一更新就出事的win10!SSD硬盘被坑寿命受损,微软已正视
- 麦小姐|《泰坦尼克号》的露丝原型人物的后半生是怎么度过的?
- 那年初夏|iPhone 12配制36块磁铁,有何奥秘?
- 晓正谈历史|他的生命定格在26岁,英雄故事却激励一代代青少年,那年今日
- |链得得重磅发布面向国内用户的DeFi数据产品D-Market Cap
- 服贸会面向公众开放首日,7点至17点累计进场近10万人次
