今天学习了阮一峰大大的react-redux的store API ,有一些理解不知道对不对,记一下笔记

  • store.getState() 拿到当前时刻的state
  • store.dispatch() 可以设置,修改state的值
  • store.subscribe() 设置监听函数,一旦 State 发生变化,就自动执行这个函数。

工作流程

1.首先,用户发出 Action。

store.dispatch(action);
2.然后,Store 自动调用 Reducer,并且传入两个参数:当前 State 和收到的 Action。 Reducer 会返回新的 State 。

let nextState = todoApp(previousState, action);
State 一旦有变化,Store 就会调用监听函数。

// 设置监听函数
store.subscribe(listener);
3.listener可以通过store.getState()得到当前状态。如果使用的是 React,这时可以触发重新渲染 View。

function listerner() {
let newState = store.getState();
component.setState(newState);
}

react-store相关推荐

  1. React技术栈探究-Redux

    React技术栈耕耘 -- Redux Redux 是近年来提出的 Flux 思想的一种实践方案,在它之前也有 reflux . fluxxor 等高质量的作品,但短短几个月就在 GitHub 上获近 ...

  2. 2 中间件的使用、异步action的创建

    react-redux是react插件 将所有组件分成两大类:UI组件和容器组件 安装npm install react-redux -S UI组件: 只负责UI的呈现,不带有任何业务逻辑 不使用th ...

  3. 关于Redux到底是个什么鬼

    原文链接:https://zhuanlan.zhihu.com/p/20641377 我们故事的主人公,小明. 小明大学刚毕业,摆脱了宿舍的集体生活,自己在外面租了个一室一厅的小公寓住. 这是客厅的平 ...

  4. [译]Vue官方成员:Vite生态发展的怎么样了

    前言 之前 Vite2 刚出来的时候,恰好我要负责一个新项目,所以我打算用最新的 Vite + Vue3 + TS 来构建这个项目. 不幸的是,那时候 Vite 有坑,热更新做的也不如传统 webpa ...

  5. 【视频】React ReduxToolkit状态管理:创建store对象及redux调试工具的安装方法

    React ReduxToolkit状态管理:创建store

  6. React单页如何规划路由、设计Store、划分模块、按需加载

    本项目地址:react-coat-helloworld react-coat 同时支持浏览器渲染(SPA)和服务器渲染(SSR),本 Demo 仅演示浏览器渲染,请先了解一下:react-coat 第 ...

  7. react+mobx:如何组织store之最佳实践

    上篇文章 create-react-app + webpack + antd + less + mobx 的demo入门配置 简单介绍了一个笔者使用的最基本的react配置,简单引入了mobx. 现在 ...

  8. 使用 store 来优化 React 组件

    在使用 React 编写组件的时候,我们常常会碰到两个不同的组件之间需要共享状态情况,而通常的做法就是提升状态到父组件.但是这样做会有一个问题,就是尽管只有两个组件需要这个状态,但是因为把状态提到了父 ...

  9. react hook + stamen store + pug实现纯函数无痛版react开发体验

    基于最新的react 16.7.0-alpha.2,结合react hook + stamen store + pug,实现纯函数无痛版react开发体验,畅快度直逼clojurescript + r ...

  10. 如何在 React Component 之外获取 Redux Store

    原文链接: Access the Redux Store Outside a React Component 译者注: 获取 redux 中的 store 的方法是个不起眼的小知识点,最近也有个小需求 ...

最新文章

  1. .NET 项目 在 Visual Studio 各种版本间的转换
  2. Shuttle ESB实现消息推送
  3. 开通了一个gmail邮箱
  4. 【深入Java虚拟机JVM 05】HotSpot对象探秘
  5. 不装oracle进行远程连接解决办法 .
  6. 开学一月,可以自己玩自己做的游戏了!!!
  7. 《Python Cookbook 3rd》笔记(3.7):无穷大与 NaN
  8. 17秋 软件工程 团队第五次作业 Alpha Scrum2
  9. 项目管理学习总结(3)——产品文档的规划化管理总结
  10. 首届FineReport平台主题设计大赛火热启动
  11. Visual Studio Code中的无标题(工作区)
  12. 苹果+beta+软件测试计划,自讨苦吃:加入苹果Apple Beta版软件计划之后
  13. 推荐这三款软件让你实现PDF转WORD格式
  14. NeoKylin(linux)操作系统基本操作(自用)
  15. 《大清重臣李鸿章·上下》—— 读后总结
  16. Android - 接收、监听系统短信广播
  17. ipa解包打包工具_解压ipa软件包找到urlscheme
  18. 判断一个点是否在多边形的内部(包括边)
  19. 微信公众号配置网页授权域名报错:无法访问xxx指向的web服务器或虚拟主机的目录
  20. PyQt5 的textedit下的setPlainText()和setText区别

热门文章

  1. java单例模式例子,下载量瞬秒百万
  2. java mina spring_Mina: SpringBoot 集成 MINA 项目
  3. oc语言和c语言,OC和C语言的混编注意点和好处
  4. 解决Vue打包部署到Nginx时,css样式不生效问题
  5. 学习淘淘商城第五十七课(接收Queue消息)
  6. 关联规则算法怎么实现?Python代码、PowerBI可视化详细解释给你听(下-实战篇)
  7. maven私服nexus忘记密码,解决方法
  8. matlab计算复数导数,带复数的符号运算,涉及求导,符号和数值的转换。
  9. 海康威视DS-K1F100-D8E发卡器Java版
  10. 微信小程序全局存储信息