码迷,mamicode.com
首页 > 其他好文 > 详细

redux学习

时间:2017-09-23 17:21:43      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:add   问题   load   todo   nbsp   def   create   assign   class   

redux主要用于解决组件之间通信问题:

一、store:保存数据的地方,每个应用只能有一个store

在redux中,使用createStore函数来生成store

import { createStore } from redux
let store = createStore(todoApp)

二、state:所有的状态,通过store.getState()函数来获取

三、action:  state的变化会出发view的更新,用户只能接触view层,action就是view层发出通知,表示该更新某个state了(改变 State 的唯一办法,就是使用 Action。它会运送数据到 Store)

/*
 * action 类型
 */
export const ADD_TODO = ADD_TODO;
export const isLoading = isLoading;
/*
 * action 创建函数
 */
export function addTodo(text) {
    return { type: ADD_TODO, text }
}

export function loading(text) {
    return {type: isLoading, text}
}

四、store.dispatch() 

     view层通过store.dispatch()来发出action

store.dispatch(addTodo(Learn Redux));

五、Reducer:reducer用于更新state并返回一个新的state

import {ADD_TODO} from ./action
let initState = {
    counter: 0,
    isLoading: false,
    todos: []
}
function reducer(state, action) {
    if (!state) {
        state = initState
    }
    switch (action.type) {
        case isLoading:
            return Object.assign({}, state, {
                isLoading: action.text
            });
            return state
        default:
            return state
    }
}
export default reducer

 

redux学习

标签:add   问题   load   todo   nbsp   def   create   assign   class   

原文地址:http://www.cnblogs.com/running1/p/7581413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!