React-Redux是什么? - 网站

React-Redux是什么?

分类:React入门教程_React框架基础教程 · 发布时间:2020-04-10 15:14 · 阅读:2143

React-Redux是什么?

React-Redux是Redux的官方React绑定库,用于连接React和Redux的。它能够使你的React组件从Redux store中读取数据,并且向store分发actions以更新数据。

为什么使用React-redux

使用React-redux可以使redux部分代码更简洁更明了,比如组建中需要使用到的数据都在mapStateToProps方法中,组建中需要修改store的操作都在mapDispatchToProps中。

如何使用React-redux

下面是一个简单的例子

//store/index.js 
//store部分的代码和没有使用react-redux时相同
import { createStore } from 'redux'
import reducer from './reducer';
const store = createStore(reducer);
 
export default store;
//reducer.js
//reducer部分和未使用react-redux时相同
const defaultState = {
inputValue: '',
list: []
}
//reducer 可以接受state但是不能修改state,需要对state进行深拷贝
export default (state = defaultState, action) => {
if (action.type === 'change_input_value') {
const newState = JSON.parse(JSON.stringify(state));
newState.inputValue = action.value;
return newState
}
if (action.type === 'add_input_value') {
const newState = JSON.parse(JSON.stringify(state));
newState.list = [...state.list, state.inputValue]
newState.inputValue = '';
return newState;
}
return state;
}
//index.js
//入口需要稍微调整
import React from 'react';
import ReactDOM from 'react-dom';
import TodoList from './TodoList';
import { Provider } from 'react-redux';
import store from './store';
ReactDOM.render(
<Provider store={store}>
<TodoList />
</Provider>,
document.getElementById('root')
);
import React, { Component, Fragment } from 'react';
import { connect } from 'react-redux';
class TodoList extends Component {
constructor(props){
super(props)
this.handleList = this.handleList.bind(this);
}
handleList(){
return this.props.list.map((item) => {
return <li>{item}</li>
})
}
render() {
return (
<Fragment>
<div>
<input 
value = {this.props.inputValue} 
onChange = {this.props.handleInputChange}
/>
<button onClick={this.props.btnClick}>提交</button>
</div>
<ul>
{this.handleList()}
</ul>
</Fragment>
);
}
}
function mapStateToProps(state) {
return {
inputValue: state.inputValue,
list: state.list
}
}
function mapDispatchToProps(dispatch) {
return {
handleInputChange:function(e){
const action = {
type: 'change_input_value',
value: e.target.value
}
dispatch(action);
},
btnClick:function(){
const action = {
type: 'add_input_value'
}
dispatch(action);
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(TodoList);

更多web前端知识,请查阅 HTML中文网 !!

标签:
React-Redux React

相关文章

react中怎么使用sass?

方法:1、使用npm工具安装sass-loader和node-sass依赖;2、配置webpack.config.js文件;3、在需要的组件中引入scss,然后添加scss代码即可。

react怎么判断checkbox是否被选中

react判断checkbox是否被选中的方法:可以通过【if ($(&quot;#checkbox-id&quot;).get(0).checked) {}】方法来进行判断。还可以通过原生js方法来进行判断,如【ele.checked】。

react子组件如何向父组件传值?

在react中,首先通过父组件给子组件传递一个函数,然后子组件通过参数传到父组件,通过props来传递函数的引用,并通过回调的方式实现;其实就是子组件调用父组件的方法,把值以形参的方式传出来。

react组件什么时候会重新渲染?

每当组件状态改变时,React就会调用render函数进行重新渲染。更改状态意味着当调用setState函数时,React触发更新;这不仅意味着将调用组件的render函数,而且还意味着重新渲染其所有后续子组件,无论其prop是否已更改。

react组件生命周期有几个阶段?

React组件生命周期有三个阶段:加载、更新和卸载。加载阶段表示一个组件实例被创建并被插入到DOM中;更新阶段表示由状态或属性的改变导致组件的重新渲染;卸载阶段表示组件从DOM中移除。

返回分类 返回首页