记录一次redux使用过程

2020-11-19 南京途牛前端现场面试 2020-11-19 南京途牛前端现场面试 一、笔试 由于是在现场做的笔试,还交了手机,所以不记得具体选项了,只能记录个大概 1. (选择题)哪一个不是XmlHttpRequest对象的属性 2. (选择题)NodeJS是什么 3. (填空题)几行JS代码,考察this问题,要填链式调用的函数内部的this访问的属性的输出结果 4. (填空题)几行JS代码,考察var、let定义变量的作用域问题,要填一个变量的输出结果 5. (问答题)Linux发行版的优缺点 6. (问答题)Linux中如何在/opt/t 阅读详情

话说好记性不如烂笔头,记录下redux使用过程,方便下次复制用,哈哈

仅做记录使用,不详细解释redux原理

用到的插件 :redux、react-redux、redux-persist、redux-thunk

1、redux/actions/counter.js


// action也是函数
export function setPageTitle (data) {
    return (dispatch, getState) => {
        dispatch({ type: 'SET_PAGE_TITLE', data: data })
    }
}

export function setInfoList (data) {
    return (dispatch, getState) => {
        // 使用fetch实现异步请求
        dispatch({ type: 'SET_INFO_LIST', data: data })
    }
}

export function setPower (data) {
    return (dispatch, getState) => {
        // 使用fetch实现异步请求
        dispatch({ type: 'SET_POWER', data: data })
    }
}

2、redux/reducers/counter.js


// 工具函数,用于组织多个reducer,并返回reducer集合
import {combineReducers} from 'redux'

/*
* 初始化state
 */

const initState = {
    pageTitle: '首页',
    infoList: [],
    power:{}
};

/*
* reducer
 */
// 一个reducer就是一个函数
function pageTitle (state = initState.pageTitle, action) {
    // 不同的action有不同的处理逻辑
    switch (action.type) {
        case 'SET_PAGE_TITLE':
            return action.data
        default:
            return state
    }
}

function infoList (state = initState.infoList, action) {
    switch (action.type) {
        case 'SET_INFO_LIST':
            return action.data
        default:
            return state
    }
}

function power (state = initState.power, action) {
    switch (action.type) {
        case 'SET_POWER':
            return action.data
        default:
            return state
    }
}

// 导出所有reducer
export default combineReducers({
    pageTitle,
    infoList,
    power
})

3、redux/store.js

// index.js

// applyMiddleware: redux通过该函数来使用中间件
// createStore: 用于创建store实例
import { applyMiddleware, createStore } from 'redux'

// 中间件,作用:如果不使用该中间件,当我们dispatch一个action时,需要给dispatch函数传入action对象;但如果我们使用了这个中间件,那么就可以传入一个函数,这个函数接收两个参数:dispatch和getState。这个dispatch可以在将来的异步请求完成后使用,对于异步action很有用
import thunk from 'redux-thunk'

// 引入reducer
import reducers from './reducers/counter'

//redux-persist持久化插件
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage/session' // defaults to sessionStorage for web

const persistConfig = {
    key: 'root',
    storage: storage
};

const myPersistReducer = persistReducer(persistConfig, reducers)

const store = createStore(myPersistReducer,applyMiddleware(thunk))

export const persistor = persistStore(store)
export default store


4、index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './router/router';
// import App from './components/layout/layout.mainbody';
import * as serviceWorker from './serviceWorker';
import './assets/iconfont/iconfont.css'
import "./index.css"
import {Provider} from 'react-redux'
import store from './redux/store'
import {persistor} from './redux/store'
import 'element-theme-default';
import "./assets/css/base.css"
import {PersistGate} from 'redux-persist/integration/react'

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

// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

5、使用方法

赋值:

import {connect} from 'react-redux';
import {setPower} from '../../redux/actions/counter'

省略
。。。
this.props.setPower(xxx)  //赋值方法
。。。
省略

const setPowerFun = dispatch=>({
    setPower:e=>dispatch(setPower(e))
});

export default connect(setPowerFun)(login);

取值:

import {connect} from 'react-redux';



省略
console.log(this.props.pageTitle)  //取值方法
省略


const getPageTitle = state => {
    return {
        pageTitle: state.pageTitle
    }
}

export default connect(getPageTitle)(login);

 

十三)React项目实战记录:react-redux封装 react-redux封装步骤如下。可以先安装redux-thunk。其余的类似,代码分别如下。 阅读详情

相关推荐

【电磁场与电磁波课程设计】基于HFSS的双频微带天线仿真及设计

第五代移动通信技术(5G)的商用已经近在眼前,作为移动通信中最为重要的功能组件,面向5G通信应用的手机天线与基站天线的技术研究与设计成为近年来的热点。随着移动通信中“跳频”“扩频”等通信技术发展,为了满足与多个终端的通信要求,实现多系统共用和收发共用等功能,这就要求天线在不同频段下工作。根据国家工信部的最新规定,5G移动通信的中频段被划定在3.3 GHz-3.5 GHz及4.8 GHz-5.0 GH,面向5G移动通信的天线应具有高增益、小型化、宽频段及高隔离度等技术特征,以满足5G通信的高传输速率、波束智能

weixin_44450575的博客 1万+

redux 存值 及 取值 的操作

项目目录 首先,一个基于React + Redux + React-Router的项目目录可以按照我下方的图片来构建: 其中assets目录用于存放项目的静态资源,如css/图片等,src目录则用于存放React的组件资源。   入口文件配置 在webpack的配置项中,我们需要一个或多个入口文件,这里我就不展示关于package.json及webpack.config.js的文件配置,最后我会...

weixin_34331102的博客 4045

MPU6050运动中断唤醒STM32低功耗休眠模式实战

本文详细介绍了如何使用MPU6050运动中断唤醒STM32低功耗休眠模式的实战方案。通过配置MPU6050的运动检测中断作为STM32的唤醒源,实现设备在静止时进入低功耗Stop模式,运动时快速唤醒,大幅延长电池续航。涵盖硬件连接、软件配置、参数调试等关键步骤,并提供实际应用案例和优化建议。

rgv23456789的博客 703

react -redux 存取数据简单使用

1.首先,在自定义的组件中新建store文件夹,并在store下新建reducer.js文件,编写代码: import {fromJS} from 'immutable'; const defaultState = fromJS({ topicList:[{ "id":1, "text":"社会热点", "url":"https://upl...

vuvivian的博客 4934

S32DS使用手把手教程:从零实现CAN通信配置

深入讲解S32DS使用过程中如何从零开始配置CAN通信,涵盖关键步骤与实用技巧,帮助开发者快速上手S32DS使用中的常见问题与调试方法。

weixin_42405592的博客 1126

了解随机振动疲劳分析中 Ansys nCode DesignLife 的平均应力校正

通过选择静态环境,我们可以将其结果视为疲劳计算的平均应力,如图 3 所示,因此从静态偏移载荷工况中提取的平均应力用于转移预测雨流计数中所有循环的平均值。您可以通过观看下面的教学视频获得宝贵的见解,该视频将指导您完成利用 Ansys nCode DesignLife 分析平均应力对随机振动载荷下结构的影响的过程。它基于 R 比率或平均应力水平。另一方面,平均应力校正可以帮助消除平均应力的负面影响,提高结果的保真度。Ansys nCode 提供先进的平均应力校正技术,使工程师能够考虑平均应力对疲劳寿命的影响。

jkh920184196的博客 1518

redux 的基础使用

安装 redux # NPM npm install redux # Yarn yarn add redux 创建redux文件 // actionTypes.js 公共变量,避免多次使用时书写错误 export const INCREMENT = 'increment' // actions.js //为描述应用程序中发生了什么的事件. // 同步方法 export const increment = count => ({ type: INCREMENT, data:.

qq_49267744的博客 150

React redux 存值取值 持久化

先创建一个store.js文件 在https://www.npmjs.com/package/redux-persist官网里面 import { createStore } from 'redux' import { persistStore, persistReducer } from 'redux-persist' import storage from 'redux-persist/lib/storage' // defaults to localStorage for web import ro

weixin_47353884的博客 902

Moveit +Gazebo:搭建单臂机械臂仿真平台

Moveit +Gazebo:搭建单臂机械臂仿真平台

magic_invaid的博客 5290

从 SAP GUI 到 API 自动化,为什么 SAP 团队必须把 API 拉到路线图中央

摘要: SAP项目正从传统手工操作转向API驱动,以应对业务敏捷性需求。API不仅是技术接口,更是核心业务能力的标准化封装,助力自动化、低代码、AI集成和系统升级。通过SAP Business Accelerator Hub等工具,企业可复用标准API替代定制开发,减少技术债。API还赋能自动化平台、实时集成和AI Agent执行,确保安全治理与审计追踪。未来,API将成为企业系统与AI交互的核心桥梁,缺乏API将迫使业务依赖脆弱的UI自动化方案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 302

redux获取store中的数据

1.安装redux yarn add redux 2.创建store文件夹,创建store.js //引入createStore 模块 import {createStore} from 'redux' //调用createStore 方法 const store = createStore(); //导出store export default store; 3.创建reducer.js //定义数据 const defaultState = { inputValue:"", list

x1037490413的博客 1335

Plecs standalone 4.9.5最新版本,赶紧来下载使用吧,需要做并网逆变器及光伏储能变换器的朋友赶紧下载起来

PLECS 4.9.5较4.7.1版实现全面升级:采用自适应求解器切换技术,支持多核CPU/GPU加速,仿真速度提升30-50%;新增模型引用功能,实现模块化设计;强化光伏/风电等新能源组件,支持多物理场耦合分析;优化代码生成功能,兼容多种硬件平台和FMU导入。新版特别适用于复杂电力电子系统、多域联合仿真及硬件在环测试项目,但对硬件配置要求更高。基础教学项目仍可使用4.7.1版本。建议用户根据项目复杂度选择升级方案。

2431

记录一次扇贝前端面试经历

记录一次扇贝前端面试经历 最近在上家公司由于换部门的关系干的不是很舒服,一直想换个环境,于是找时间投了简历,打开招聘软件查找了一番,发现了“扇贝”这家公司,发现他们家的招聘简章写的非常有意思,又是一家总部位于南京的公司,技术栈也和自己的现在学习方向很接近,也是就顺手投了个简历。 漫长的等待 简历投递之后就是一个漫长的等待的过程。虽然同时也投递了其他家公司,但是最心仪的公司一直没给我答复内心其实...

astonishqft的博客 4180

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[React] [Redux] react-redux 项目采坑记录

项目状态管理由Flux向Redux迁移过程中,产生了请求死循环发送导致浏览器崩溃的情况。起初认为是业务逻辑问题,照此思路查错未果,后发现是小的语法问题,自己大意导致,在此做一记录,望日后自己能仔细些。错误代码:错误1:错误2:页面跳转时请求反复发送进入死循环解决:1. connect方法是一个高阶组件,其有4个参数,通常我们只写mapStateToProps和mapDispatchToProps,...

ShotMoon的博客 517

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

react-redux安装失败的问题

刚试写了一个react的项目,为了体验一下react全家桶使用了 redux,但是redux想要配合react使用还需要 react-redux。 安装命令:npm install react-redux --save 但是在安装react-redux的时候遇到了一个问题,安装失败,报错如下 npm ERR! cb() never called! npm ERR! This i...

weixin_34062469的博客 904

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【共享单车】—— React后台管理系统开发手记:Redux集成开发

【共享单车】—— React后台管理系统开发手记:Redux集成开发 前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录。最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star。 一、Redux基础介绍 单向数据流:从父组件留向子组件,兄弟组件无...

柳柳66的博客 448

react 和redux集成报TypeError: Object(...) is not a function

今天集成react和redux时,突然报TypeError: Object(...) is not a function,查了很久都没有找到与自己写的代码有关系的地方。猜测应该是version不匹配。就找出最近集成成功的项目,发现react-redux^7.0.1降级到6.0.1,就不会有问题。记录下来供自己和别人参考。 转载于:https://juejin.im/post/5cb45b86e...

weixin_34205076的博客 4310

记一次蚂蚁金服电话面试经历

前端时间接到蚂蚁的电话面试,记录一下面试的过程。 以下是我和面试官的谈话: 面试官:做个自我介绍 我:随便做了些介绍,这个相信大家都有准备。讲了自己这几年工作主要做什么,用的技术栈有哪些,其中提到了umi+dva+antd这一套技术栈,对方表示他们也有用这一套,这对我倒是一个好消息 面试官:谈下对 umi 和 dva 的看法 我:这一块答得不是很好,主要讲了好处,但是有没有突出重点。最...

dijin5470的博客 684

2021届秋招哈啰出行前端面经(一面)

面试过程简单做个自我介绍吧。面试官您好。。。看到了你的项目经验,简单介绍一下你的项目吧。。。。你的项目中用到了 React,用的是那个版本呢?用的 React 16.5(记错了,应该是 1...

azl397985856的专栏 1233

使用dva改造React旧项目的数据流方案

  最近在给自己的脚手架项目转到TypeScript时,遇到了一些麻烦。      项目之前采用的是react + react-redux + redux-thunk + redux-actions +redux-promise的体系。      当项目转TypeScript时,react和react-redux这种完美转换。      redux-actions转换也初步完成,但是各种为了适应T...

li123128的博客 429

在React项目中使用redux

前言: 此博文是记录我在b站上观看redux教学视频的记录 原视频链接在此 react-redux看这个视频就够了! 一、安装相关的插件 1、安装 redux npm install -S redux 2、安装 redux-thunk npm install -S redux-thunk 3、在 chrome 应用商店安装 redux-devtools 二、引入相关插件 import {createStore, combineReducers, compose, applyMiddleware} fr.

Windy_Z的博客 13万+

redux 的学习记录

这里使用最多的是redux-thunk中间件,它使我们可以给dispatch传入一个异步函数,帮我们执行回调后修改state的内容。Dispatch(分发): 一个函数,用于将 action 发送到 reducer,从而触发状态的变化。Reducer(处理器): 一个纯函数,接收当前状态和一个 action,并返回一个新的状态。在步骤3中的dispatch(action),action可能被多个地方使用,而类型是相同的,只有num不会变。整个应用的状态被保存在单一的 store 中。

shuaikang的博客 1132

redux-actions详解教程记录( redux使用更简单???)

前言 Redux 的诟病是重复的模块代码太多,各路大佬都开始尝试解决这些问题,Redux-actions 悄然而生。 刚开始使用 Redux-actions 时遇到一些问题,那么专门写一篇博客全面详细的记录 Redux-actions 的使用。 安装 npm install redux-actions DEMO项目结构 入口 // index.jsximport React from 'react';import React..

乐闻世界 2093

Redux 中间件

目录 1.中间件概述 Redux 中间件作用: 中间件说明: 2.中间件的触发时机 3.redux-logger中间件 4.redux-thunk中间件 1.不使用 redux-thunk 中间件,action 只能是一个对象 2.使用 redux-thunk 中间件后,action 既可以是对象,又可以是函数 5.了解:redux-thunk中间件原理 6.redux-devtools-extension中间件 7.了解:redux 中间件原理 8.理解Redux异步数据流 ..

m0_62118859的博客 4393

Redux中间件之redux-thunk使用详解

Redux的核心概念其实很简单:将需要修改的state都存入到store里,发起一个action用来描述发生了什么,用reducers描述action如何改变state tree 。创建store的时候需要传入reducer,真正能改变store中数据的是store.dispatch API。 1.概念dispatch一个action之后,到达reducer之前,进行一些额外的操作,就...

hsany330的专栏 7425
上一篇: axios多次相同请求,取消下一次
下一篇: vue-cli3:区分开发、测试、生产环境
阵雨丶
博客等级 码龄9年 126粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值