IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> React-Redux学习之路+Redux持久化 -> 正文阅读

[JavaScript知识库]React-Redux学习之路+Redux持久化

🚀🚀首发:CSDN碰磕,学无止境


🌞🌞🌞晴28°


??Better to light one candle than to curse the darkness.


📅2022/6/22


React-Redux

安装

npm i react-redux

使用

主要使用:connectProvider配合

完美替换了dispatchsubscribe

🌼1.在入口文件将显示的内容使用provider包裹

并且传递store从而公共使用

<Provider store={store}>
  <Zhuye2 />
  </Provider>

🌼2.在组件中通过connect进行通信订阅

connect(将来给孩子传的属性,将来给孩子传的回调函数)

使用前不要忘记引入

import { connect } from 'react-redux';
export default connect((state)=>{
  console.log(state)
  return{
    isShow:state.TabbarReducer.isShow
  }
})(Zhuye2)

根据之前的案例在NotFound组件中进行通知

//connect(将来给孩子传的属性,将来给孩子传的回调函数)
export default connect(null,{
    hide(){
        return{
            type:"404传的消息",
            isShow:false
        }
    },
    show(){
        return{
            type:"404传的消息",
            isShow:true
        }
    }
})(NotFound)

通过props.函数名进行调用…

import React, { useEffect } from 'react';
import { connect } from 'react-redux';
// import store from '../redux/store';
function NotFound(props){
    useEffect(()=>{
        console.log(props)
        // console.log("进入404")
        //store.dispatch通知
        // store.dispatch({
        //     type:"404传的消息",
        //     val:"碰磕",
        //     isShow:false
        // })
        props.hide()
        return()=>{
            console.log("销毁...");
            props.show()
        }
    },[])
    return (
        <div>
            404
        </div>
    );
}
//connect(将来给孩子传的属性,将来给孩子传的回调函数)
export default connect(null,{
    hide(){
        return{
            type:"404传的消息",
            isShow:false
        }
    },
    show(){
        return{
            type:"404传的消息",
            isShow:true
        }
    }
})(NotFound)

这样就完美替换了dispatch

redux持久化(redux-persist)

官网:[redux-persist - npm (npmjs.com)](redux-persist - npm (npmjs.com))

安装

npm i redux-persist

使用

store.js

/**
 * Redux
 */
//1、引入redux
//2.createStore(reducer)
import {applyMiddleware, combineReducers, createStore,compose} from 'redux';
import CinemaListReducer from './reducers/CinemaListReducer';
import CityReducer from './reducers/CityReducer';
import TabbarReducer from './reducers/TabbarReducer';
import reduxThunk from 'redux-thunk'
import reduxPromise from 'redux-promise'
/**redux持久化 */
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'

const persistConfig = {
    key: 'pengke',
    storage,
    whitelist:['CityReducer']   //只持久化城市的reducer
}

const reducer=combineReducers({
    CityReducer,
    TabbarReducer,
    CinemaListReducer
})
   
const persistedReducer = persistReducer(persistConfig, reducer)

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(persistedReducer,composeEnhancers(applyMiddleware(reduxThunk,reduxPromise)))
let persistor = persistStore(store);

export{
    store,
    persistor
}

在之前的案例上做改变

引入----定义本地存储-----persistReducer增强----persistStore(store)—导出(store,persistor)

Tip:whitelist:设置只持久化的(白名单)

这样就实现了redux的持久化🆗

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 16:49:40  更:2022-06-26 16:50:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:19:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码