redux

<meta charset="utf-8">

Vue全局状态管理 vuex

state mutation action getter module 辅助函数

redux

多组件共享状态,一个组件发生改变其他的都要变

在电视上剧里活不过3集 甄嬛传 慈禧太后 -> 光绪帝 -> 卖地求荣 ->闭关锁国 -> 垂帘听政

安装redux

npm install redux

角色划分

皇帝 store 传递奏折 发布政令 老佛爷 reducer 接受奏折 根据局奏折批阅 平民百姓 component 使用数据 修改数据 文武百官 actionCreator 提交奏折给老佛爷

多组件共享状态

1.创建小皇帝 store 并且和老佛爷关联 2.创建老佛爷

3.在组件中使用 a.引入小皇帝 b.使用小皇帝下的getState方法,getState方法获取的值就是老佛爷返回的值

一个组价组件改变其他组件都要变

创建actioncreatore 本质是一个对象 对象里有一堆的函数 在内部的函数 a. 创建action 也是一个对象必须有type b. store.dispatch(action) 提交action给老佛爷

老佛爷根据参数里修改前的数据和action 对数据进行修改 并且返回修改后的数据

数据更改了但是页面不会发生改变 通过 store.subscribe(()=>{ this.setState({}) 更新界面 })监听全局状态值发改变

redux 模块化

redux 异步处理

同vuex中一样 可以将网络请求放到actionCreatore

减少重复的代码 统一管理api接口

时间旅行 更精准的检测到全局状态值的变化

样式作用域的问题

在react中样式没有作用域 ,当不同组件类名重复又的时候 导致样式覆盖

<meta charset="utf-8">

react-redux

优化模块 优化redux的使用过程

npm install redux react-redux

1 通过react-redux 提供的provider提供器 将全局状态对象挂载到根元素的上下文上

import Provider from 'react-redux'

import store from './store/store.js'

...

<Provider store = {store}>

<App></App>

</Provider>

...

2 在组件中使用全局状态值 通过react-redux 提供的connect 从跟组件的上下文上获取store对象, 通过高阶组件将获得到的store传给目标组件的props

import {connect} from 'react-redux'

class Son1 ... {}

connect(state=>state)(Son1)

3 组件中修改全局状态值 不需要写组件监听 组件 -> actionCreator -> redcuer ->组件(监听更新)

a 组件的里的监听不用写了

b actionCreator 默认做两个事情1.创建action 2.通过dispath 发送action actionCreator 使用插件之后只要 创建action

c 在组件里发送

react-redux 中异步action

解决方式通过异步中间件 redux-thunk redux-sage redux-promise ....

1 安装异步插件 npm install redux-thunk

2 在store.js 引入并使用

import {createStore,applyMiddleware} from 'redux'

import thunk from 'redux-thunk' //解决异步的插件

import reducer from './reducer'

export default createStore(reducer,applyMiddleware(thunk))

3 除了actionCreatore 需要修改之外 其他的都不用动 a. 如果是同步的方法也不需要动 返回action b. 如果action里有异步 返回一个函数 函数能接受dispath 在函数内部 做网络请求 成功之后通过dispath手动的发送

{

addlist(){

  let action ={}

  return action

},

dellist(){

  return(dispatch)=>{

    <!-- 网络请求 -->

    setTimeOut(()=>{

        let action  ={}

        dispatch(action)

    },1000)

  }

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容