深入浅出React和Redux——阅读笔记9

第九章 扩展Redux

  1. 两种扩展Redux的方法


    image.png
  2. 使用中间件

import {createStore, combineReducers, applyMiddleware, compose} from 'redux';

import {reducer as todoReducer} from './todos';
import {reducer as filterReducer} from './filter';

import Perf from 'react-addons-perf'

const win = window;
win.Perf = Perf

const reducer = combineReducers({
  todos: todoReducer,
  filter: filterReducer
});

const middlewares = [];
if (process.env.NODE_ENV !== 'production') {
  middlewares.push(require('redux-immutable-state-invariant')());
}

const storeEnhancers = compose(
  applyMiddleware(...middlewares),
  (win && win.devToolsExtension) ? win.devToolsExtension() : (f) => f,
);

const initialState = {
  todos: [
    {
      id: 0,
      text: 'First',
      completed: true
    },
    {
      id: 1,
      text: 'Second',
      completed: false
    },
    {
      id: 2,
      text: 'Third',
      completed: true
    }
  ]

}
export default createStore(reducer, initialState, storeEnhancers);
  1. Promise中间件


    深入浅出React和Redux——阅读笔记9_第1张图片
    image.png

    深入浅出React和Redux——阅读笔记9_第2张图片
    image.png

    深入浅出React和Redux——阅读笔记9_第3张图片
    image.png
  2. Store Enhancer


    深入浅出React和Redux——阅读笔记9_第4张图片
    image.png

第十章 动画

  1. 动画的实现方式


    image.png

2.css方式


image.png

image.png

2.脚本方式


image.png
  1. React中的动画


    深入浅出React和Redux——阅读笔记9_第5张图片
    image.png
import TransitionGroup from 'react-addons-css-transition-group';

const TodoList = ({todos}) => {
  return (
    
    { todos.map((item) => ( )) }
); };
深入浅出React和Redux——阅读笔记9_第6张图片
image.png
  1. React-Motion
    使用:
import {spring, TransitionMotion} from 'react-motion';

const willLeave = () => {
  return {
    height: spring(0),
    opacity: spring(0)
  };
}

const willEnter = () => {
  return {
    height: 0,
    opacity: 0
  };
};

const getStyles = (todos) => {
  return todos.map(item => {
    return {
      key: item.id.toString(),
      data: item,
      style: {
        height: spring(60),
        opacity: spring(1)
      }
    };
  });
}

const TodoList = ({todos}) => {
  const styles = getStyles(todos);
  return (
    
      {
        interpolatedStyles =>
        
    { interpolatedStyles.map(config => { const {data, style, key} = config; const item = data; return (); }) }
}
); };

第十一章 多页面应用

  1. 传统网页


    深入浅出React和Redux——阅读笔记9_第7张图片
    image.png
  2. 单页应用


    image.png

    深入浅出React和Redux——阅读笔记9_第8张图片
    image.png
  3. React-router(这里指的是v3)


    深入浅出React和Redux——阅读笔记9_第9张图片
    image.png
  4. 简单使用


    深入浅出React和Redux——阅读笔记9_第10张图片
    image.png
  5. 路由链接和嵌套


    深入浅出React和Redux——阅读笔记9_第11张图片
    image.png

    深入浅出React和Redux——阅读笔记9_第12张图片
    image.png
  6. 默认路径


    深入浅出React和Redux——阅读笔记9_第13张图片
    image.png
  7. 集成Redux


    深入浅出React和Redux——阅读笔记9_第14张图片
    image.png

    深入浅出React和Redux——阅读笔记9_第15张图片
    image.png

    深入浅出React和Redux——阅读笔记9_第16张图片
    image.png

    深入浅出React和Redux——阅读笔记9_第17张图片
    image.png

    深入浅出React和Redux——阅读笔记9_第18张图片
    image.png
  8. 代码分片


    深入浅出React和Redux——阅读笔记9_第19张图片
    image.png
  9. 分片原则


    深入浅出React和Redux——阅读笔记9_第20张图片
    image.png

你可能感兴趣的:(深入浅出React和Redux——阅读笔记9)