美文网首页
React-Redux基础

React-Redux基础

作者: alex_zn | 来源:发表于2018-08-31 16:55 被阅读0次

    React-Redux基础

    • 基本概念

      • 核心:store ->action ->reducer->state

      • 三大原则:单一数据源,State 是只读,纯函数来执行

    • 主要组件

      • Action:

        通过dispatch传递数据到store

        import { GET_NET_VALUE } from './actionTypes'
        // 创建action
        export const getAllPersonAction = (value) => ({
           type:CHANGE_ADD_VALUE,
           value
        })
        // 通过thunk中间件返回函数体
        // 获取所有成员
        export const getAllPerson = () => {
        
           return ((dispatch)=>{
        
               axios.post('/person').then((res) => {
        
                   let data = res.data.data
                   // 整理数据源
                   let newV = data.map((v,i) => {
        
                       let newObj = v
                       newObj["key"] = i.toString()
                       return newObj
                   })
        
                   let action = getAllPersonAction(newV)
                   dispatch(action)
               })
           })       
        }
        
        // ../other.js
        // 组件加载完成调用
        componentDidMount() {
        
           let action = getAllPerson()
           store.dispatch((v)=>action(v))
        }
          
        
      • Reducer

        Reducers 是描述如何响应action更新state

         
         const defaultState = {
             
         }
         // 简单 处理action
         function doNet(state = initialState, action) {
         
             switch (action.type) {
                // 处理net数据
             case GET_NET_VALUE:
                let netState = JSON.parse(JSON.stringify(state))
                netState.dataSource = action.dataSource
                return netState
             default:
               return state
           }
         }
        
      • Store
        // 订阅store的改变
        store.subscribe(()=>{
        
            console.log(store.getState());
            this.setState(store.getState())
        })
        
        componentDidMount() {
        
            let action = getAllPerson()
            store.dispatch((v)=>action(v))
        }
        
        

    相关文章

      网友评论

          本文标题:React-Redux基础

          本文链接:https://www.haomeiwen.com/subject/wvcewftx.html