前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React.js基础知识 函数组件和类组件(二)

React.js基础知识 函数组件和类组件(二)

作者头像
用户6379025
发布2022-12-26 15:56:32
1.1K0
发布2022-12-26 15:56:32
举报
文章被收录于专栏:莫凡
生命周期

引用网络
引用网络
代码语言:javascript
复制
 1. 生命周期函数

   【调取组件】
      constructor  初始化属性状态
      componentWillMount 第一次渲染之前
      render 渲染
      componentDidMount 第一次渲染之后

   【组件重新渲染:内部状态改变、传递给组件的属性改变】
     状态改变:
       shouldComponentUpdate
          =>是否允许组件更新:返回TRUE是允许,返回FALSE则不再继续向下走
       componentWillUpdate
          =>更新之前:和SHOULD一样,方法中通过this.state.xxx获取的还是更新前的状态信息,方法有两个参数:nextProps/nextState存储的是最新的属性和状态信息
       render 更新
       componentDidUpdate 更新之后

     属性改变:
       componentWillReceiveProps(nextProps/nextState)
         =>接收最新属性之前,基于this.props.xxx获取的是原有的属性信息,nextProps存储的是最新传递的属性信息
       shouldComponentUpdate  是否允许组件更新
       componentWillUpdate  更新之前
       render 更新
       componentDidUpdate 更新之后

  【组件销毁】
     componentWillUnmount  组件销毁之前

  =====

  组件的属性是只读的:只能调取组件时候传递进来,不能自己在组件内部修改(但是可以设置默认值和规则)

  组件的状态是可读写的:状态改变会引发组件的重新更新(状态是基于setState改变)

  组件实例上可以放一些信息:这些信息只是为了方便在组件内任意方法中获取和使用的

  实例上挂载的REFS:就是用来操作DOM的

  实例上挂载的context:是用来实现组件之间信息传递的
函数式组件和类组件
代码语言:javascript
复制
    // 函数式组件 一般用来完成一些静态的组件,不需要从后端获取数据
    export defalut function Component (props){  
               // props 是传递过来的属性 是一个对象
              return <div></div>    //jsx语法
    }
   // 类组件 一般用来做比较复杂的页面从服务端获取数据,有生命周期函数,es6 类的一些继承,封装
   export defalut class Component extends React.Component{
            constructor(props){
              super(props)  //继承this
            }
           static defalutProps={} //设置默认属性  属性是可读不可写的,就是不能修改属性的值
           static propTypes={}   // 设置属性传递进来的类型 和vue 属性类似,但是它是一个插件想要用需要下载 
           // 生命周期
           componentWillMount(){}
	       componentDidMount(){}
	       shouldComponentUpdate(){}
	       componentWillUpdate(){}
	       componentDidUpdate(){}
	       componentWillReceiveProps(){}
	       componentWillUnmount(){}
           render(){
             return <div></div> //jsx
           }
	       
   }
组件的状态
代码语言:javascript
复制
  // 只有在组件中才有状态 
  this.state={}       //组件是通过状态是否改变来判定是否重新渲染页面
  this.setState({    // 修改状态
  }) 
ref 操作dom
代码语言:javascript
复制
   如在jsx 中  <div ref="box"></div>
   那么组件的实例上就会有 this.refs.box 这个属性值就是dom对象
最新生命周期的变化 (https://reactjs.org/blog/2019/08/08/react-v16.9.0.html)
代码语言:javascript
复制
componentWillMount → UNSAFE_componentWillMount
componentWillReceiveProps → UNSAFE_componentWillReceiveProps
componentWillUpdate → UNSAFE_componentWillUpdate
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生命周期
  • 函数式组件和类组件
  • 组件的状态
  • ref 操作dom
  • 最新生命周期的变化 (https://reactjs.org/blog/2019/08/08/react-v16.9.0.html)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档