react知识点整理

react:优点

虚拟DOM,解决了跨浏览器问题,IE8都没问题,模块化重用性高,可维护性高
可以在服务器上预渲染应用再发送到客户端,有助于搜索引擎优化。

缺点:

注重ui组件,可以和其他框架组合使用,不适合单独做一个完整框架,自带的插件少,一般都得用第三方插件。

jsx

jsx: 是一个javascript的语法扩展,html和js的一种结合,支持所有js语法

元素渲染:

react元素是不可变对象一旦被创建,就无法更改它的子元素或者属性。将一个 React 元素渲染到DOM 节点中,
只需把它们一起传入 ReactDOM.render()。React DOM 会将元素和它的子元素与它们之前的状态进行比较,改变必要更新

组件:

组件定义:
纯函数式定义的无状态组件
React.createClass 定义的组件
Extends React.Component 定义的组件

class组件:类组件------
  1. 使用class继承React.Component
  2. constructor需要接收props并且调用super(props),在调用super之后,可以直接设置state。
    class Welcome extends React.Component {
    render() {
    return <h1>Hello, {this.props.name}</h1>;
    }
    }
函数组件 :无状态展示组件 ----

组件不会被实例化,整体渲染性能得到提升,不能访问this对象,生命周期的方法,只能访问输入的props无副作用
function Title(props) {
return <h1>Hello, {props.name}</h1>;
}

React.createClass 定义的组件 : -----
  1. 调用React.createClass并传入一个对象
  2. 接受一个只会在组件被挂载时才会调用一次的initialState函数来改变state,
    var Root = React.createClass({
    render:function(){
    return (
    <h1>迹忆博客</h1>
    );
    },
    });

生命周期

constructor():用来做一些组件的初始化工作,如定义this.state的初始内容
componentWillMount():在组件挂载到DOM前调用,且只会被调用一次在这边调用this.setState不会引起组件重新渲染
componentWillUpdate():调用render方法前执行,在这边可执行一些组件更新发生前的工作
render():是纯函数,负责组件渲染工作
componentDidMount(): 方法会在组件已经被渲染到 DOM 中后运行
shouldComponentUpdate(nextProps, nextState):此方法通过比较nextProps,nextState及当前组件的this.props,this.state,
返回布尔值,可控制组件是否重新渲染,优化组件
componentWillReceiveProps(nextProps):判断props是否变化了,将props转换成自己的state,调用 this.setState()
将不会引起第二次渲染。
componentWillUnmount():卸载组件前调用,可以在这里执行一些清理工作
componentDidUpdate() 这个生命周期的作用是当props或state更新之后,使用它更新DOM节点。

getSnapshotBeforeUpdate() 被调用于render之后,可以读取但无法使用DOM的时候。它使您的组件可以在可能更改之前从DOM
捕获一些信息(例如滚动位置)。此生命周期返回的任何值都将作为参数传递给componentDidUpdate()。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作为一个合格的开发者,不要只满足于编写了可以运行的代码。而要了解代码背后的工作原理;不要只满足于自己的程序...
    六个周阅读 8,529评论 1 33
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,860评论 1 18
  • 说在前面 关于 react 的总结过去半年就一直碎碎念着要搞起来,各(wo)种(tai)原(lan)因(le)。心...
    陈嘻嘻啊阅读 6,918评论 7 41
  • 40、React 什么是React?React 是一个用于构建用户界面的框架(采用的是MVC模式):集中处理VIE...
    萌妹撒阅读 1,058评论 0 1
  • 现在最热门的前端框架,毫无疑问是 React 。上周,基于 React 的 React Native 发布,结果一...
    sakura_L阅读 442评论 0 0