总结/简书react项目

总结/简书react项目

1.react

    注重函数式编程

2.开发环境

 脚手架 grunt,gulp,webpack是现在当前已经存在的一些脚手架

 而官方提供的脚手架 create-react-app

3.运行

 yarn start

4.项目目录

 项目入口:src 下的index.js

 yarn.lock 项目依赖安装包版本号

package.json node的包文件

5.组件

    一个类继承React.component这个类他就是一个组件了,通过 render函数来返回一个内容,返回是什么就展示什么。

  其中展示的时候需要用到JSX语法,因此最开头需要引入react,react使得jsx语法让其可以被编译识别。

6.render函数最外层

    render函数return的最外层必须是单个元素,由div包裹,或者通过fragment占位符。

7.constructor

   最先被渲染的,将一些数据定义在状态里.this.state=

   改变数据通过this.setState({}),setState这个函数里面可以记载preState,以及setState是异步的,可以在这个函数后加,再写上setState完了以后的事件。

8.事件的this指向不明需要bind.this

9.展示数据列表,需要循环展示,可以通过.map的方法

10.在展示的时候,数据列表需要绑定一个key值,尽量不要用index做key,涉及diff算法相关问题。key放在循环的最外层元素上。

11.jsx相关:

   注释,{/*dd*/},

 dangerouslySetInnerHTML={{_html: item}}

 className,htmlFor

12.render函数:

  何时渲染,当state,props,有变化。当父组件渲染时子组件也再次渲染

  渲染的实质:jsx->createElement->虚拟dom->真实dom

13.diff算法

  同级比较,key值比较

14.ref的绑定

  {(input) => {this.input = input}}

15.生命周期函数

  初始化,挂载,更新,销毁

16.性能提升

 constructor的绑定只绑定一次

 shouldComponentUpdate 将state比较,true,false

 ajax请求, 只进行一次在componentdidmount

 数据更新 浅拷贝 [...res.data]

17.redux

 数据管理

 store唯一,store才能改变状态,reducer纯函数,createStore,dispatch,getState,subscribe

 action,actionTypes,actionCreators.

 reducer,defaultState,函数返回一个state,action通过action.type来判断,深拷贝

18.中间件

 redux-thunk,异步请求,统一管理,使得dispatch需要一个对象时,里面可以是一个函数,dispatch会帮忙运行该函数。

 saga,大型项目使用

 react-redux connect函数,不用再subsrcibe

18.ui组件,容器组件

19.react-router 路由,<link>

20.immutable 不可变对象

在defaultState中有使用,以及再改变数据时,同样也需要一个immutable对象

通过fromJS({})

21.styled-components

css为js,styled引入,使用为export const topicWrapper= styled.div`

 css相关

`

22.react-loadable 

异步加载组件的好帮手,改变的地方有 route的component路径为一个loadable.js 在对应组件里需要有withRouter()这样才能再读到相应的路径上的参数数据。withRouter()

猜你喜欢

转载自blog.csdn.net/qq_37021554/article/details/87532463