react梳理回顾(一)

已经使用react2年左右了,打算梳理一下,想到什么就写一点啦。
涉及内容(在一个项目中会用到的一些关键内容或者词汇):
react,MVC,虚拟 dom(render树,Diff算法), JSX,function,class,state,props ... route...redux,actions(fetch,可以是其他) reducers 中间件(常用redux-thunk或redux-saga) dispatch(types) connect,bindActionCreators ...package(依赖,组件包)create-react-app (快速搭建) git(项目管理)另外,还需要一个可爱的你

1 react

react属于MVC(modal view controller)框架,可使用JSX(JavaScript扩展语法)数据流为单向响应(单项方便追查问题)。
虚拟 dom:可以高效的渲染页面,将对真实dom的多次操作经过diff算法存入js对象一次操作,节省真实dom的操作。
diff算法:我理解上是通过二叉树模式的虚拟dom进行逐层的比较,找出变化的第一个节点,更替本身及以下内容,保留其它,功能上来说,减少dom操作以及渲染影响范围从而减少我们的性能烦恼。
props: 传入组件,改变会造成页面渲染(reducers派发,父组件传入等)
state: 组件内部,改变会造成页面渲染(不用渲染页面时的内部数据传递使用this.name)
生命周期:componentWillMount(渲染前) componentDidMount(第一次渲染后,此时一般会发送获取需要数据的action) componentWillReceiveProps(收到新的prop后页面更新前,常用语发送action后获取到新数据的时候进行数据保存和调整) shouldComponentUpdate(接收到新的prop或者state时调用) componentWillUpdate(接收到新的prop或者state后页面更新前) componentWillUnmount(组件从 DOM 中移除之前,此处通常停止一些计时器之类的操作)
antd:常用的react ui框架,有皮肤的感念。

2 route
/**
 * 项目入口
 */

import React, { Component } from 'react';
import { Provider } from 'react-redux'
import { Route, BrowserRouter, Switch } from 'react-router-dom'

import configureStore from './redux/configureStore'
import './App.css';
import Login from './containers/login'
import Main from './containers/main'

const store = configureStore()

class App extends Component {
  render() {
    return (
      <Provider store={store}>
        <BrowserRouter>
          <Switch>
            <Route path="/login" component={Login}/>
            <Route path='/' component={Main}/>
          </Switch>
        </BrowserRouter>
      </Provider>
    );
  }
}

export default App;

中间件
/**
 * @desc react-router-redux及history配置
 **/

import { createStore, combineReducers, applyMiddleware, compose } from 'redux'
import thunkMiddleware from 'redux-thunk'
//import { routerReducer, routerMiddleware } from 'react-router-redux'

import * as reducers from './reducers'


export default function configureStore(history, initialState) {
  const reducer = combineReducers({
    ...reducers,
    //routing: routerReducer,
  })

  const store = createStore(
    reducer,
    initialState,
    compose(
      applyMiddleware(
        thunkMiddleware,
        //routerMiddleware(history),
      ),
    ),
  )
  return store
}

主要中间件:redux-thunk或者redux-saga
都是负责异步操作,redux-saga相对复杂,可以在请求的各个阶段进行操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文将开始详细分析如何搭建一个React应用架构。 一. 前言 现在已经有很多脚手架工具,如create-reac...
    字节跳动技术团队阅读 9,838评论 1 23
  • 看到这篇文章build an image gallery using redux saga,觉得写的不错,长短也适...
    smartphp阅读 11,379评论 1 29
  • 学习如何在Flow中使用React 将Flow类型添加到React组件后,Flow将静态地确保你按照组件被设计的方...
    vincent_z阅读 11,534评论 4 21
  • 第一次面试,毫无准备.接到面试的电话,什么也没准备,就这样我还在睡梦中.下午两点,这是面试时间,不知道地址,只有一...
    loster阅读 3,021评论 0 1
  • 我想,我许是退化了。 我还记得,高考前的那段时间,无论周围的环境是如何的喧闹,我都能效仿古人“两耳不闻窗外事,一心...
    初音_阅读 1,706评论 3 0

友情链接更多精彩内容