博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react 中 redux
阅读量:2120 次
发布时间:2019-04-30

本文共 2286 字,大约阅读时间需要 7 分钟。

本文通过一个实例来说明redux 的使用方法及流程:

实现内容:1.拿store中的state的数据显示title  2.调用dispatch 方法 ,修改state里面的内容.

创建store文件夹,文件夹内创建(index.js,reducer.js,action.js),

1.index.js

import {createStore,applyMiddleware} from 'redux'import userReducer from './reducer'import thunk from 'redux-thunk'//创建store单一数据源,整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。let store = createStore(    userReducer,    applyMiddleware(thunk)  )  export default store

2.reducer.js

//默认statelet defaultState = {    title: 'hello world'}export default (state = defaultState, action = {})=>{    //reducer通过action的type,进行处理返回新的state    if(action.type === 'set_title'){        return Object.assign({},{title:action.value})    }    return state;}

3.action.js

//每个action 必须有一个 type ,从而标注需要做什么操作export const setTitle = (title)=>{    return{        type: 'set_title',        value: title    }}

4.视图层 ,调用store中的state和action,修改页面显示内容

import React from 'react';import {connect} from 'react-redux';import {setTitle} from './action'class Header extends React.Component{    render(h) {        return(                        
{this.props.title}
) }}//获取store中state里面的值,赋值给当前视图所需元素const mapStateToProps=(state) => { return { //当前title 等于store中state的title title: state.title }}//dispatch调用action方法,触发reducer从而返回新的state,state更新const mapDispatchToProps=(dispatch) =>{ return { setTitle: (title)=> dispatch(setTitle(title)) }}//通过connect连接store和视图export default connect(()=>mapStateToProps,mapDispatchToProps)(Header);

 

5.必须要在外层Provider,才可以使store在视图呢共享从而使用

         1.在App.js 内引入Provider,2 <Provider store={store}></Provider>

App.jsimport React, { Component } from 'react';import { Route,HashRouter } from 'react-router-dom';import './App.css';import routes from './route/route.js';import {Provider} from 'react-redux';import store from './store'class App extends Component {  render() {    return (      
//中间是路由可以去掉
{ routes.map((route,key)=>{ return
(
)} /> }) }
); }}export default App;

 

转载地址:http://txurf.baihongyu.com/

你可能感兴趣的文章
iOS常用宏定义
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>