React-redux實(shí)現(xiàn)小案例(todolist)的過(guò)程
使用React-redux實(shí)現(xiàn),待辦事項(xiàng)todolist案例。
注:以下列出主要頁(yè)面代碼,為說(shuō)明React-redux實(shí)現(xiàn)的過(guò)程,所以并沒(méi)有將案例的完整代碼展示!

一、全局安裝:rudux、react-redux
npm install redux --save npm install react-redux
二、主要代碼:
1、項(xiàng)目的入口文件index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './style/main.less';
import App from './App';
import * as serviceWorker from './serviceWorker';
//*********** 引入容器組件 *************
import {Provider} from 'react-redux';
import store from './store/store';
ReactDOM.render(
// ********* 套入Provider組件,傳入store *********
<Provider store={store}>
<App />
</Provider>
, document.getElementById('root'));
serviceWorker.unregister();
2、列表頁(yè)面(刪除、完成)
import React from 'react';
import actionCreator from '../../../store/todoStore/actionCreator' ;
import {connect} from 'react-redux';
import { bindActionCreators } from 'redux';
class TodoEvent extends React.Component{
//刪除
delete(id){
// alert('delete'+id)
this.props.delete(id);
}
//完成
finish(id){
// alert('finish'+id)
this.props.finish(id);
}
//渲染函數(shù)
renderList(){
//容器組件,通過(guò)props獲取
let {todolist}=this.props.todoStore;
return todolist.map((item)=>{
return <li className='list-group-item' key={item.id}>
{item.title}
<button onClick={this.delete.bind(this,item.id)} className='btn btn-danger'>刪除</button>
{item.isFinish?'已完成': <button onClick={this.finish.bind(this,item.id)} className='btn btn-success'>完成</button>}
</li>
})
}
//渲染頁(yè)面
render(){
return(
<div>
<ul className='list-group'>
{this.renderList()}
</ul>
</div>
)
}
}
let mapStateToProps=(state)=>{
return state;
}
//bindActionCreators 將綁定的actionCreator中的方法,放到props里直接調(diào)用,并觸發(fā)dispacth
let mapDispatchToProps=(dispatch)=>{
return bindActionCreators(actionCreator,dispatch)
}
//通過(guò)connect將UI組件,轉(zhuǎn)換成容器組件
export default connect(mapStateToProps,mapDispatchToProps)(TodoEvent)
//簡(jiǎn)寫,將 mapStateToProps 和 mapDispatchToProps 直接引入 connect
// export default connect(state=>state,(dispatch)=>{
// return bindActionCreators(actionCreator,dispatch)
// })(TodoEvent)
3、actionCreator組件
//actionCreator中對(duì)應(yīng)的方法,只需 return action
const actionCreator={
addlist(title){
let action={
type:'ADD_LIST',
title:title
}
return action
},
delete(id){
let action={
type:'DELETE_LIST',
id:id
}
return action
},
finish(id){
let action={
type:'FINISH_LIST',
id:id
}
return action
}
}
export default actionCreator
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
React實(shí)現(xiàn)基于Antd密碼強(qiáng)度校驗(yàn)組件示例詳解
這篇文章主要為大家介紹了React實(shí)現(xiàn)基于Antd密碼強(qiáng)度校驗(yàn)組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
react性能優(yōu)化達(dá)到最大化的方法 immutable.js使用的必要性
這篇文章主要為大家詳細(xì)介紹了react性能優(yōu)化達(dá)到最大化的方法,一步一步優(yōu)化react性能的過(guò)程,告訴大家使用immutable.js的必要性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
create-react-app安裝出錯(cuò)問(wèn)題解決方法
這篇文章主要介紹了create-react-app安裝出錯(cuò)問(wèn)題解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
React中使用Redux Toolkit狀態(tài)管理的示例詳解
在現(xiàn)代 React 應(yīng)用程序中,狀態(tài)管理是一個(gè)至關(guān)重要的部分,使用 Redux Toolkit 可以簡(jiǎn)化 Redux 的配置和管理,本文將通過(guò)三個(gè)文件的示例,詳細(xì)講解如何使用 Redux Toolkit 創(chuàng)建和管理一個(gè)簡(jiǎn)單的計(jì)數(shù)器狀態(tài),需要的朋友可以參考下2024-11-11
React中的useMemo 和 useEffect 執(zhí)行順序
在 React 組件的渲染過(guò)程中,useMemo 和 useEffect 的執(zhí)行順序是不同的,本文給大家介紹React中的useMemo 和 useEffect 哪個(gè)先執(zhí)行,感興趣的朋友一起看看吧2025-01-01
React18?中的?Suspense?API使用實(shí)例詳解
這篇文章主要為大家介紹了React18?中的?Suspense?API使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10

