React redux-react-hook

redux-react-hook

import React, { useState, useEffect, useCallback } from 'react'
import { useDispatch, useMappedState } from 'redux-react-hook';
import './styles.less'
import { hook } from '@/actions/hook'
import _ from 'loadsh'

export default function Counter() {
    const mapState = useCallback(state => {
        return {
            hookData: state.hook.hookData, // 获取 hookData 的 数据
        }
    })

    // 从 store 中读取 dispatch
    const dispatch = useDispatch()

    // data: 获取的所有数据
    const data = useMappedState(mapState)

    useEffect(() => {
    	// 调用 actions 里面hook的方法
        dispatch(hook())
            .then(res => {
                console.log(res, 'res');
            })
    }, [])

    console.log(data, 'data');

    return (
        <div className='hook'>
            {
                _.get(data, 'hookData', []).map((v, k) => {
                    return (
                        <h1 key={k}>{v.name}</h1>
                    )
                })
            }
        </div>
    )
}


引入
import React from 'react';
import ReactDOM from 'react-dom';

import 'antd/dist/antd.less';
import '@/styles/rem.js';
import '@/styles/iconfont.css'
import '@/styles/reset.css';
import './index.less';

import { StoreContext } from 'redux-react-hook'
import Router from './router'  // 路由
import { store } from './store'  //store
import { Provider } from 'react-redux'
import { persistStore } from 'redux-persist'   //数据持久化
import { PersistGate } from 'redux-persist/lib/integration/react'

ReactDOM.render(
    <Provider store={store}>
        <StoreContext.Provider value={store}>
            <PersistGate loading={null} persistor={persistStore(store)}>
                <Router />
            </PersistGate>
        </StoreContext.Provider>
    </Provider>
    , document.getElementById('root'));

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Hooks 和 Redux 是两个不同的概念,但它们可以一起使用来构建 React 应用程序。React Hooks 是 React 16.8 引入的新特性,它允许您在不编写类组件的情况下使用状态和其他 React 功能。Redux 是一个 JavaScript 应用程序状态管理库,它可以帮助您管理应用程序的状态并使其易于维护。 使用 React Hooks 和 Redux 可以使您的代码更简洁、易于维护和可测试。您可以使用 React Hooks 来管理组件级别的状态,而使用 Redux 来管理应用程序级别的状态。 例如,您可以使用 useState Hook 来管理组件级别的状态,如下所示: ``` import React, { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); function increment() { setCount(count + 1); } return ( <div> <p>You clicked {count} times</p> <button onClick={increment}>Click me</button> </div> ); } ``` 而对于应用程序级别的状态,您可以使用 Redux 来管理。以下是一个简单的 Redux 示例: ``` import { createStore } from 'redux'; // 定义 reducer function counterReducer(state = { count: 0 }, action) { switch (action.type) { case 'INCREMENT': return { count: state.count + 1 }; case 'DECREMENT': return { count: state.count - 1 }; default: return state; } } // 创建 store const store = createStore(counterReducer); // 订阅 store store.subscribe(() => { console.log(store.getState()); }); // 分发 action store.dispatch({ type: 'INCREMENT' }); store.dispatch({ type: 'INCREMENT' }); store.dispatch({ type: 'DECREMENT' }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值