observ-falcor 是一个运用于前端的数据查询库,可以很好的管理前端数据请求,使得数据请求具有响应式特性,基于RxJS编写,使用方便,能大幅度提升我们的前端数据请求操作形式和效率,下面让我们来了解如何使用observ-falcor。
安装
使用npm进行安装:
npm install observ-falcor rxjs
安装好依赖后,我们就可以开始使用 observ-falcor。
实例化
实例化 observ-falcor 库需要引入falcorQuery、falcorModel和RxJS,其中falcorQuery和falcorModel负责建立数据源和定义数据模型,RxJS则是observ-falcor的基础库。
假设我们的falcor服务端地址是 http://localhost:3000/model.json
,则我们可以这样实例化:
import { falcorQuery, falcorModel } from 'observ-falcor'; import Rx from 'rxjs/Rx'; const source = falcorQuery.dataSource('http://localhost:3000/model.json'); const model = falcorModel.create(source);
通过上述代码,我们已经成功建立起与falcor服务端的连接。
查询数据
observ-falcor 支持许多种类型的数据查询,例如:
访问一个路径
访问falcor服务端数据的操作是通过以下命令完成:
model.get(path, [fields])
其中,path代表访问路径,fields则是我们要查询的字段。
例如,我们要查询name
和 email
字段,我们可以这样操作:
model.get(['user', '1', ['name', 'email']]).subscribe(res => { // 处理数据 })
访问多个路径
访问多个路径的操作格式为:
model.get([['user', '1', ['name', 'email']], ['user', '2', ['name', 'email']]...])
其中,每个数组元素代表一条路径。
例如,我们要查询用户1
和用户2
的name
和email
字段,我们可以这样操作:
model.get([[‘user’, ‘1’, [‘name’, ‘email’]], [‘user’, ‘2’, [‘name’, ‘email’]]]).subscribe(res => { // 处理数据 })
访问范围
访问范围指定一个范围来获取多个数据,该操作的格式为:
model.get(['articles', { from: 0, to: 10 }, ['title', 'body']])
以上表示查询文章列表的前十条记录的题目和内容字段,其中from
和to
参数分别表示查询的数据范围的起点和终点。
访问 Path Sets
访问Path Sets表示查询一些具有共同特征的数据,一般用于模糊查询,例如:
model.get(['users', 'byUsername', 'johndoe', { from: 0, to: 10 }, ['name', 'email']])
以上查询用户名为johndoe
的用户列表中前10个用户的姓名和电子邮件字段。
数据响应处理
observ-falcor 返回的是RxJS Observables对象,当服务器端数据改变时,观察者可以接收到新的数据。
一个例子:
-- -------------------- ---- ------- ----- --- - ------------------- ------------- ---------- - ----- -- --- -- -- -------- ----------- ----------------- -- - -- ---- --- -- -- ------ --- ------------------- ---- --------- ------------------------- -- - ----------------- -- - -- -------------------- --- ---
其中,我们先创建一个观察者,并让它订阅data observable。当数据更新时,我们再让观察者接收到更新的数据。通过这样的方式,我们就能处理更新数据的操作。
示例代码
-- -------------------- ---- ------- ------ - ------------ ----------- - ---- ---------------- ------ -- ---- ---------- ----- ------ - ----------------------------------------------------------- ----- ----- - --------------------------- -- ------ ------------------- ---- -------- ------------------------ -- - ----------------- --- -------- -------------------- ---- -------- ---------- --------- ---- -------- ------------------------- -- - ----------------- --- -------- ---------------------- - ----- -- --- -- -- --------- ----------------------- -- - ----------------- --- -------- ---- ------------------- ------------- ---------- - ----- -- --- -- -- -------- ------------------------ -- - ----------------- --- -------- ----- --- - ------------------- ------------- ---------- - ----- -- --- -- -- -------- ----------- ----------------- -- - ----------------- --- -- -- ------ - ----- ------------------- ---- --------- ------------------------- -- - ----------------- -- - ----------------- --- ---
以上就是 observ-falcor 的使用教程。通过该库的使用,我们可以更加高效地进行数据请求操作,希望对读者有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f9c3d1de16d83a66f58