react-glue-redux-hook
glue-redux的连接库(hook版本)
像使用组件状态一样使用redux
安装
npm i react-glue-redux-hoos -P
查看示例
git clone https://github.com/ZhouYK/react-glue-redux-hook.gitnpm installnpm start 然后访问 http://localhost:8888
Api
- destruct
代码
destruct(store)(model) |入参
- store(必传)
redux的生成的store对象
- model(必传)
自定义的数据对象,必须是plain object
返回
-
{ reducers, useGlue, connect }
包含reducers和connect属性的对象
- reducers
redux中的reducer函数的对象集合,可直接用于combineReducers
- useGlue
react hook,通过它来获取最新的redux的state
- connect
HOC---链接store与组件,帮助组件实时获取数据,向组件注入数据
- reducers
如何使用
// store.js ; ; ; ; ; const modelSchemas = app book ; const store = ; const reducers useGlue connect = modelSchemas; store; ;
useGlue(model: glue)
function component可使用
- model
必须是对象,从state拿到的数据将以该对象的展开结构注入组件
connect(model: glue)(Component: ReactComponent)
所有component都可以使用
- model
必须是对象,从state拿到的数据将以该对象的展开结构注入组件
- Component
react组件
如何使用
- 先定义数据模型
// model.js ; const users = ; const app = users ; ;
- 在组件中注入数据(hook模式)
import React from 'react'; import pt from 'prop-types'; import useGlue modelSchemas from '../../store'; const renderUsers = users if Object return <section> no users </section> ; const list = users; return list; ; const Index = props // 获取redux中的state const modelState = ; return <section> <span> propstest </span> </section> ; ; IndexpropTypes = test: ptstring ; IndexdefaultProps = test: 'userList component' ; ;
- 在组件中注入数据(connect模式)
// UserList.jsx import React Component from 'react'; import pt from 'prop-types'; import connect from './store'; import model from './model'; static propTypes = users: ptarrayisRequired { ... } { return <section> this </section> ; } modelUserList;// model的结构为{ users },注入组件的属性则为this.props.users