其他分享
首页 > 其他分享> > DvaJS的Subscription的使用

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,users,userId,dispatch,使用,path,history,match,Subscription
来源: https://blog.51cto.com/u_15275953/2924452