DvaJS的Subscription的使用
简介:
subscriptions是订阅,用于订阅一个数据源,然后根据需要dispatch相应的action。数据源可以是当前的时间、服务器的websocket连接、keyboard输入、geolocation变化、history路由变化等等。格式为({ dispatch, history }) => unsubscribe。
subscripition的用法:
异步数据初始化:
比如:当用户进入 /users 页面时,触发action users/fetch 加载用户数据。
app.model({subscriptions: {setup({ dispatch, history }) {history.listen(({ pathname }) => {if (pathname === '/users') {dispatch({type: 'users/fetch',});}})}}
})
拓展:
path-to-regexp Package |
如果url规则比较复杂,比如: /users/:userId/search ,那么匹配和userId的获取都会比较麻烦。这时推荐使用 path-to-regexp简化这部分逻辑。
import pathToRegexp from 'path-to-regexp';// in subscription
const match = pathToRegexp('/users/:userId/search').exec(pathname);
if (match) {const userId = match[1];// dispatch action with userId
}
DvaJS的Subscription的使用相关推荐
- DvaJS中的Subscription
简介: subscriptions是订阅,用于订阅一个数据源,然后根据需要dispatch相应的action.数据源可以是当前的时间.服务器的websocket连接.keyboard输入.geoloc ...
- 一篇文章读懂 React and redux 前端开发 -DvaJS, a lightweight and elm-style framework.
DvaJS: React and redux based, lightweight and elm-style framework. https://dvajs.com/ 实例项目源码:https:/ ...
- 一文彻底搞懂 DvaJS 原理
Dva 是什么 dva 首先是一个基于redux[1]和redux-saga[2]的数据流方案,然后为了简化开发体验,dva 还额外内置了react-router[3]和fetch[4],所以也可以理 ...
- DvaJs:React数据流解决方案
DvaJs:React数据流解决方案 摘要 本文最终想要达到的目的是掌握DvaJs的使用,从起源开始讲起.文章内容借鉴了阮一峰博客与各技术官网. Flux篇 Fulx是什么? Flux 是一种架构思想 ...
- React应用框架DvaJs入门
1 什么是Dva? dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一 ...
- DvaJS 入门, 快速上手Dva
为什么要使用Dva? React 没有解决的问题 React 本身只是一个 DOM 的抽象层,使用组件构建虚拟 DOM. 如果开发大应用,还需要解决一个问题. 通信:组件之间如何通信? 数据流:数据如 ...
- Minimal安装CentOS 7使用yum报This system is not registered to Red Hat Subscription Management.
问题描述 最小化安装CentOS 7的Linux系统后,发现yum安装任何工具,都报This system is not registered to Red Hat Subscription Mana ...
- 什么是 Rxjs 的 subscription
什么是订阅? Subscription 是一个对象,该对象代表一个一次性资源,通常是一个 Observable 的执行. Subscription 有一个重要的方法,unsubscribe,它不接受任 ...
- 使用GraphQL的subscription订阅服务器的通知
首先在schema.graphql里定义一个Deal类型: 我们模拟的场景是:每当有新的交易发生时,我们期望从服务器端收到通知. 创建一个新的subscription,字段为deal,类型为刚才定义的 ...
最新文章
- 【Groovy】IntelliJ IDEA 中创建 Gradle 工程 ( Gradle 工程目录文件分析 )
- 数学建模——智能优化之粒子群模型详解Python代码
- react 组件连动效果_React组件开发中常见的陷阱
- 有种欢迎叫“来了就是深圳人”
- 这些年,NLP常见的预训练模型剖析
- NYOJ4 - ASCII码排序
- 在WSL下安装MYSQL的实验报告_Linux(wsl)安装docker和mysql主从搭建
- day26-2 基于TCP协议的套接字编程
- Flutter Fish-Redux插件入门指南
- oracle歸檔日誌,oracle歸檔日誌清理 | 學步園
- SQL SERVER MONTH函数
- ChemDraw中如何旋转结构
- GitHub上最火的Android开源项目整理
- ios删除字符串第一位_ios-删除字符串中的最后两个字符(Swift 3.0)
- 解决“javac不是内部或外部命令,也不是可运行的程序”问题
- 计算机非全日制有用吗,计算机在职研究生还会有用吗?
- Adobe Acrobat 安装 E1935 0x80070BC9 错误 经验
- 银行卡信息盗取、买卖已成黑色产业链
- 404页面设置方法_404页面案例
- 关于wampserver图标变绿的问题