bacon.js 介绍
Baco njs 是什么
Baco njs 是 一个 函数 响应式编程(Functional reactive Programming)的 js 库。虽说是 函数 响应式编程,但我用了会儿,感觉响应式编程更令人印象深刻,它与业界比较火的响应式编程库 Rxjs 有点类似。值得一提的是,Angular 内置的许多 API 就使用了 Rxjs 。可见,响应式编程可能会是未来 一个 很重要的发展方向。
如何理解 FRP
函数 响应式编程(Function reactive Programmin),简称 FRP 。这是 Baco njs 最显著的特点,要想入门 Baco njs ,只需理解这种编程思维即可,不必被官网提供的海量 API 所困扰。
FRP = FP(Function Programming) + RP(reactive Programming)
顾名思义, 函数 响应式编程 = 函数 式编程(Functional Programming) + 响应式编程(reactive Programming)
2.1 函数 式编程(FP)
函数 式编程是业界很火的 一个 概念,我曾不止一次试图去彻底的弄懂它,但至今也是一知半解的状态~
不管怎么样, 以下几个 FP 的特点还是需要了解的:
纯 函数 (Pure function), 函数 唯一的输入只会有唯一的 输出 。
不可 修改 状态(Immutable state)。
我们常常把 FP 和命令式编程(Imperative programming)进行比较,我个人认为 FP 更加强调 代码 的可预测性(Predictable),尽可能的避免 代码 的副作用(Side effect), 更加关心数据的映射,而命令式编程关心的是 解决 问题的步骤 。
2.2 响应式编程(RP)
随着 Google 前端框架 Angular(Angular 1.x 称为 Angularjs,Angular v2+ 称为 Angular) 的发布,由于 Angular 几乎所有的异步接口都使用了响应式编程库 Rxjs ,响应式编程得到了越来越多的关注。
我算是半个 NG 粉,有用 Angular 开发过 一个 项目,用下来感觉 Rxjs 的开发体验特别好。总的来说,RP 有如下几个特点:
流(Stream)的概念,衍生的概念有:数据流(Data stream)、事件流(Event stream) 。
链式 调用 (Chain invoke),使 代码 看起来清晰、简洁。
处理异步数据流的神器。
响应式编程主要是用来处理异步数据流(Asynchronous data stream),可以是 ajax 请求产生的数据流,也可以是 DOM 事件(或者其他时间)产生的事件流。
对于其核心的概念:流(Stream),我的理解是: 流是按照时间顺序排列的一系列 正在进行 的事件 。在流这个概念的基础上,RP 框架提供了一系列(海量)的接口来处理流,使得我们开发出来的 代码 显得非常清晰。
bacon.js安装与使用
安装
npm install baco njs
使用
import { EventStream,once } from "baco njs "
let s: EventStream<string> = once("hello")
s.log()
网站地址 : https://baconjs.github.io
GitHub: https://github.com/baconjs/bacon.js/
网站描述: 一个 函数 响应式编程的 JS 库
bacon.js官方网站
官方网站: https://baconjs.github.io
如果觉得 网站内容还不错,欢迎将 网站 推荐给程序员好友。