redux学习记录

简介: redux学习记录

redux中的state:
1.安装redux

$ npm i redux --save
复制代码
2.进行引入:

import { createStore } from 'redux'
复制代码
3.创建reducer进行管理

const defaultState = {
list:[
'早8点开晨会,分配今天的开发工作',
'早9点和项目经理作开发需求讨论会',
'晚5:30对今日代码进行review'
]
}
export default (state=defaultState,action)=>{
return state
}
复制代码
4.在仓库中进行引入:

import reducer from './reducer'
复制代码
5.创建数据管理仓库并注入reducer并把仓库暴露出去:

const store = createStore(reducer)
export default store;
复制代码
6.在组件中进行引入:

import store from './store'
复制代码
7.获取到仓库中的数据

console.log(store.getState())
复制代码
reducer中的action:
1.在组件中写个方法并创建action

test(){
const action = {

type:"getItem"

}
复制代码
//把action派遣到仓库中

store.dispatch(action)
复制代码
2.在reducer中根据action的type进行操作:

export default(state=defaultState ,action){
// 在reducer中只能接收state但不能改变 (只读),所以用newState 进行拷贝。

let newState = state

if(action.type === "getItem'' ){
//模拟添加一条
newState.list.push(newState.inputVal)
//返回 newState其实就是实现仓库数据的更新
return newState
}
}
复制代码
3.在react老版本中,仓库进行了更新了以后,需要在组件中进行订阅(subscribe)。

class TodoList extends Component {
constructor(){
super()
this.state = store.getState()
this.storeChange = this.storeChange.bind(this)
//订阅Redux的状态 改变仓库的状态
store.subscribe(this.storeChange)
}
复制代码
4.在组件里面写一个方法storeChange,其实就是又去获取一下store的状态。

storeChange(){
// 需要使用this.setState()
// getState是store的固定函数 获取状态
this.setState(store.getState())
}
复制代码
5.actionType的优化方法:创建一个actionType的文件。

export const GET_ITEM = 'getItem'
复制代码
6.在组件和仓库中进行引入和调用。

import {GET_ITEM } from './store/actionType'
复制代码
优势:快速显示报错。

7.action方法的优化,建立单独的js文件,进行创建、并在组件中引用使用:

import {CHANGE_INPUT,ADD_VALUE,DEAL_ITEM} from './actionType'
const changeInputAction = (value)=>({
type:CHANGE_INPUT,
value:value
})
const addValue = () =>({
type:ADD_VALUE,
})
const dealItem = (index) =>({
type:DEAL_ITEM,
index:index
})
export {
changeInputAction,
addValue,
dealItem
}
复制代码
组件中通过:const action = changeInputAction(value) 并 dispatch(action)

reducer需要注意的三点:
1.Store必须是唯一的

2.只有store能改变自己的内容,Reducer不能改变(通过return newState)

3.Reducer必须是纯函数。纯函数:如果函数的调用参数相同,则永远返回相同的结果。它不依赖于程序执行期间函数外部任何状态或数据的变化,必须只依赖于其输入参数。

作者: Bill 本文地址: http://biaoblog.cn/info?id=1565936280000

版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
开发者 索引 Python
生成数组的方法| 学习笔记
快速学习生成数组的方法
265 0
|
1天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1086 0
|
9天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3599 3
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
21天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
13330 91
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
|
15天前
|
Web App开发 人工智能 API
16 个超火的 DeepSeek Harness 插件,大肥鱼已经落后 N 个版本了。。。
DeepSeek Harness 精选插件推荐合集,从图片识别、浏览器操控、多 Agent 协作到手机远程控制,一口气带你看完 DSH 社区热门的十几个插件,覆盖技能扩展、UI 界面增强、整活玩法三大类,让你的鲸鱼变得更强。
1853 4
|
7天前
|
人工智能 监控 测试技术
Qwen3.8-Flash 来了,100万上下文、Agent、Coding 都加强了
8月26日,通义千问发布Qwen3.8-Flash-Next:125B参数、每Token仅激活6B,原生支持26万Token、可扩展至100万上下文;Coding、Agent与工具调用能力显著增强,面向真实软件工程任务,推动大模型从“回答问题”迈向“完成工作”。
|
10天前
|
人工智能 Linux iOS开发
Ollama使用教程:Ollama官网下载、Ollama本地部署大模型(2026最新)
Ollama 是一款免费开源的本地大模型运行工具,支持在 Windows/macOS/Linux 上离线运行 Qwen、DeepSeek、Llama 等主流开源模型,数据不出本机、隐私安全。提供 OpenAI 兼容 API,命令行一键拉取/运行/管理模型,无需联网,无调用限制,是开发者与 AI 爱好者部署本地 AI 助手的理想选择。(239 字)
|
16天前
|
人工智能 Java BI
【AI】DeepSeek Harness 安装、运行、管理插件
本文介绍了如何运行DeepSeek开源的Agent框架DeepSeek Harness(dsh)。主要内容包括:使用nvm安装适配的Node版本;通过代理加速克隆GitHub源码;使用pnpm安装依赖并启动项目;配置DeepSeek API Token;安装扩展功能的插件。该框架自带Web界面,支持模型适配、文件编辑等插件化功能
2058 1