react-redux之provider&connect

src/index.js

import React from 'react';
import ReactDOM from 'react-dom';
import TodoList from './TodoList'
import {Provider} from 'react-redux'
import store from './store'

// Provider可以包裹多個組件,這些組件都可以去store(Provider的屬性store)直接拿state的值
//注意是Provider包裹過的組件全部包裹以后聲明一個變量于宙,掛載渲染的時候傳這個變量就可以 
const App=(
  <Provider store ={store}> 
    <TodoList />
  </Provider>
)


ReactDOM.render(App,document.getElementById('root'))

src/store/index.js

import {createStore} from 'redux'
import reducer from './reducer'

const store = createStore(reducer)

export default store

src/TodoList.js

import React, { Component } from 'react';
// import store from './store'
import {connect} from 'react-redux'
import { ONCHANGE,UPLOAD } from './constants.js'

//使用了connect以后注釋掉的方式就可以不用了
class TodoList extends Component {
  constructor(props) {
    super(props);
    // this.state=store.getState()
  }
  render() { 
    return ( <div>
      <div>
        {/* <input value={this.state.inputValue}/> */}
        <input value={this.props.inputValue} onChange={this.props.onChange}/>
        <button onClick={this.props.onClick}>提交</button>
      </div>
      <ul>
    {
      this.props.list.map(
        (item,index)=>{
        return <li key={index}>{item}</li>
      }
      )
      }
      </ul>
    </div> );
  }
}

const stateToProps=(state)=>{
  return{
    inputValue:state.inputValue,
    list:state.list
  }
}

const dispatchToProps=(dispatch)=>{
  return {
    onChange(e){
      let action ={
        type:ONCHANGE,
        value:e.target.value
      }
      dispatch(action)
    },
    onClick(){
      let action ={
        type:UPLOAD,
        
      }
      dispatch(action)
    }
  
}
}

//connect兩個參數(shù)都是傳遞影射關(guān)系
//第一個參數(shù)傳遞影射關(guān)系從state里拿到的值影射成屬性
//第二個參數(shù)派發(fā)action行為影射成屬性
export default connect(stateToProps,dispatchToProps)(TodoList);

src/store/reducer.js

import { ONCHANGE,UPLOAD } from '../constants.js'

const defaultState={
  inputValue:'ddddda',
  list:['kkkkk']
}
// diapatch過來action reducer修改state里面的值浮驳,返回新的state
export default (state = defaultState ,action)=>{
  if (action.type === ONCHANGE){
    let newState = JSON.parse(JSON.stringify(state))
    newState.inputValue = action.value
    return newState
  }
  if (action.type === UPLOAD){
    let newState = JSON.parse(JSON.stringify(state))
    newState.list.push(newState.inputValue)
    newState.inputValue=''
    return newState
  }
  
  return state
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捞魁,隨后出現(xiàn)的幾起案子抹恳,更是在濱河造成了極大的恐慌,老刑警劉巖署驻,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡旺上,警方通過查閱死者的電腦和手機(jī)瓶蚂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宣吱,“玉大人窃这,你說我怎么就攤上這事≌骱颍” “怎么了杭攻?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疤坝。 經(jīng)常有香客問我兆解,道長,這世上最難降的妖魔是什么跑揉? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任锅睛,我火速辦了婚禮,結(jié)果婚禮上历谍,老公的妹妹穿的比我還像新娘现拒。我一直安慰自己,他們只是感情好望侈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布印蔬。 她就那樣靜靜地躺著,像睡著了一般脱衙。 火紅的嫁衣襯著肌膚如雪侥猬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天岂丘,我揣著相機(jī)與錄音陵究,去河邊找鬼。 笑死奥帘,一個胖子當(dāng)著我的面吹牛铜邮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寨蹋,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼松蒜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了已旧?” 一聲冷哼從身側(cè)響起秸苗,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎运褪,沒想到半個月后惊楼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玖瘸,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年檀咙,在試婚紗的時候發(fā)現(xiàn)自己被綠了雅倒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡弧可,死狀恐怖蔑匣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棕诵,我是刑警寧澤裁良,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站校套,受9級特大地震影響价脾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搔确,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一彼棍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膳算,春花似錦座硕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至机隙,卻和暖如春蜘拉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背有鹿。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工旭旭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人葱跋。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓持寄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親娱俺。 傳聞我的和親對象是個殘疾皇子稍味,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • redux與vuex一樣是一個組件的狀態(tài)(數(shù)據(jù))管理器,當(dāng)我們需要在項(xiàng)目各組件中共享數(shù)據(jù)時可以使用荠卷。 ? redu...
    南方北方_K閱讀 473評論 0 0
  • 基本的前置環(huán)境搭建 react作為全世界使用人數(shù)最多的前端框架之一模庐,里面的設(shè)計(jì)和優(yōu)雅不言而喻,可是對于新人前端油宜,這...
    夏魚的魚閱讀 3,042評論 0 50
  • 一掂碱、引入文件 二怜姿、項(xiàng)目目錄src文件夾下新建store文件夾(src/store/index.js)index.j...
    諾城閱讀 614評論 0 2
  • 為什么要使用Redux 我們知道React是一個簡單的視圖層框架,React開發(fā)出的應(yīng)用是由許多組件構(gòu)建而成顶吮,如果...
    FTD止水閱讀 3,424評論 1 4
  • 5-1社牲、Redux概念簡述 Redux = Reducer + Flux(2013官方推薦的數(shù)據(jù)存儲插件)imag...
    wayne1125閱讀 343評論 0 2