bacon.js

编程之家收集整理的这个编程导航主要介绍了bacon.js编程之家,现在分享给大家,也给大家做个参考。

bacon.js

bacon.js 介绍

Baconjs 是什么

Baconjs一个函数响应式编程(Functional reactive Programming)的 js 库。虽说是函数响应式编程,但我用了会儿,感觉响应式编程更令人印象深刻,它与业界比较火的响应式编程库 Rxjs 有点类似。值得一提的是,Angular 内置的许多 API 就使用了 Rxjs 。可见,响应式编程可能会是未来一个很重要的发展方向。

如何理解 FRP

函数响应式编程(Function reactive Programmin),简称 FRP 。这是 Baconjs 最显著的特点,要想入门 Baconjs ,只需理解这种编程思维即可,不必被官网提供的海量 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 baconjs

使用

import { EventStream,once } from "baconjs"

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

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

johnny-five,Bocoup 的 JavaScript 机器和物联网编程框架
WePY,一款让小程序支持组件化开发的框架
Deep playground,神经网络的交互式可视化,使用d3.js和TypeS...
ShareDB,用于并发编辑系统的前端数据库
RxJS,RxJS 是使用 Observables 的响应式编程的库
egg-react-ssr,最小而美的Egg + React + SSR 服务端渲染应用...