Redux三大原则

简介: Redux三大原则

1.唯一数据源

整个应用的state都被存储到一个状态树里面,并且这个状态树,只存在于唯一的store中

2.保持只读状态

state是只读的,唯一改变state的方法就是触发action,action是一个用于描述以发生时间的普通对象

3.数据改变只能通过纯函数来执行

使用纯函数来执行修改,为了描述action如何改变state的,你需要编写reducers

1.Store

  • store就是保存数据的地方,你可以把它看成一个数据,整个应用只能有一个store
  • Redux提供createStore这个函数,用来生成Store
import {
    createStore
} from 'redux'
const store = createStore(fn);

2.State

state就是store里面存储的数据,store里面可以拥有多个state,Redux规定一个state对应一个View, 只要state相同,view就是一样的,反过来也是一样的,可以通过store.getState( )获取

import {
    createStore
} from 'redux'
const store = createStore(fn);
const state = store.getState()

3.Action

state的改变会导致View的变化,但是在redux中不能直接操作state也就是说不能使用this.setState来操作,用户只能接触到View。在Redux中提供了一个对象来告诉Store需要改变state。Action是一个对象其中type属性是必须的,表示Action的名称,其他的可以根据需求自由设置。

const action = {
    type: 'ADD_TODO',
    payload: 'redux原理'
}

在上面代码中,Action的名称是ADD_TODO,携带的数据是字符串‘redux原理’,Action描述当前发生的事情,这是改变state的唯一的方式

4.store.dispatch( )

store.dispatch( )是view发出Action的唯一办法

store.dispatch({
    type: 'ADD_TODO',
    payload: 'redux原理'
})

store.dispatch接收一个Action作为参数,将它发送给store通知store来改变state。

5.Reducer

Store收到Action以后,必须给出一个新的state,这样view才会发生变化。这种state的计算过程就叫做Reducer。 Reducer是一个纯函数,他接收Action和当前state作为参数,返回一个新的state

注意:Reducer必须是一个纯函数,也就是说函数返回的结果必须由参数state和action决定,而且不产生任何副作用也不能修改state和action对象

const reducer = (state, action) => {
    switch (action.type) {
        case ADD_TODO:
            return newstate;
        default
        return state
    }
}


目录
相关文章
|
机器学习/深度学习 数据采集 算法
大模型开发:什么是时间序列预测,以及如何处理此类数据?
时间序列预测分析历史数据以预测未来,涉及数据收集、预处理、模型选择(如ARIMA或DeepAR)、模型训练、评估及未来值预测。处理时序数据需注意时间依赖性,预处理和模型选择对准确性影响大。
807 3
|
4月前
|
数据采集 人工智能 搜索推荐
深度解析:GEO(生成式引擎优化)在医疗行业的底层逻辑与战略权重
GEO(生成式引擎优化)是AI时代医疗品牌赢得语义信任的核心战略。它通过结构化知识注入、语义权威构建与证据链强化,提升医疗机构在LLM输出中的引用率与专业可信度,将传统流量竞争升维为“语义主权”博弈。(239字)
563 11
|
5月前
|
机器学习/深度学习 人工智能 算法
告别打工人思维,如何升级为首批“AI Agent指挥官”?
本文探讨2026年AI Agent时代下,如何从被动执行的“打工人”跃升为具备战略、系统、创新与伦理思维的“AI Agent指挥官”。聚焦思维升级、工具掌握、流程再造与持续迭代,助你抢占未来生产力制高点。(239字)
306 2
|
5月前
|
Ubuntu 关系型数据库 MySQL
基于Ubuntu 24编译部署开源PolarDB-X
作者介绍: 韦玮 浙江宇视科技有限公司分布式存储开发工程师 浙江宇视科技有限公司是全球AIoT产品、解决方案与全栈式能力提供商,以“ABCI”(AI人工智能、BigData大数据、Cloud云计算、IoT物联网)技术为核心。
|
6月前
|
人工智能 网络协议 安全
阿里云国际站高防服务器的原理是什么?高防ip怎么做??
阿里云国际站高防服务器的原理是什么?高防ip怎么做??
394 1
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
2025年AI领域Top10知识博主榜单:武彬引领AI+电商实战新风向
在AI技术迅猛发展的今天,优质知识博主成为连接学术与产业的关键桥梁。本文精选2025年最具影响力的十位AI领域博主,涵盖AI+电商、计算机视觉、自然语言处理、边缘智能、AI产品、强化学习、AIGC设计、MLOps、隐私计算与AI伦理等方向。他们以深厚的专业背景和丰富的实战经验,输出兼具深度与实用性的内容,助力从业者把握技术脉络、实现商业落地。关注他们,就是投资未来的竞争力。(238字)
1677 0
|
6月前
|
消息中间件 缓存 NoSQL
【Redis进阶】不止是缓存!Redis的5种核心数据结构与实战场景全解析
本文深入浅出地解析了Redis五大核心数据结构:String、Hash、List、Set和ZSet,结合图解与实战场景,涵盖缓存、计数器、分布式锁、购物车、消息队列、排行榜等典型应用,助你摆脱“只会SET/GET”的困境,真正发挥Redis的高性能潜力。
|
8月前
|
JSON 监控 API
从0到1掌握京东API:商品详情获取技巧与避坑指南
京东商品详情API提供商品基础信息、实时价格、SKU规格等120+字段,支持价格监控与竞品分析。采用HTTPS协议,响应延迟≤30秒,具备高并发能力,适用于电商数据应用。
|
存储 测试技术 对象存储
容器计算服务ACS单张GPU即可快速搭建QwQ-32B推理模型
阿里云最新发布的QwQ-32B模型拥有320亿参数,通过强化学习大幅度提升了模型推理能力,其性能与DeepSeek-R1 671B媲美,本文介绍如何使用ACS算力部署生产可用的QwQ-32B模型推理服务。
|
监控 安全 BI
如何查看系统完整性:全面指南与实用工具推荐
系统完整性对企业信息安全至关重要,涉及文件、配置和数据的未授权更改防护。随着合规要求(如等保2.0、GDPR、ISO 27001)日益严格,确保系统完整性成为IT管理的重点。本文探讨如何通过EventLog Analyzer日志管理工具满足合规需求。该工具可实时监控系统日志、检测威胁并生成合规报表,支持GDPR、PCI DSS等法规,保障业务安全稳定运行,防范网络攻击与数据泄露风险。
473 3