美文网首页
react创建组件的两种方式

react创建组件的两种方式

作者: Mr无愧于心 | 来源:发表于2019-03-10 23:05 被阅读0次

组件的渲染过程

调取组件的时候,babel解析,传递给createElement的第一个参数type不再是字符串标签名,而是函数或者类,生成的对象中,type也是一个函数,当render渲染的时候会根据type的类型不同而做不同的事情(如果是字符串就创建元素,如果是函数,就会把函数执行,把返回的jsx对象创建成为新的元素进行渲染),函数执行的时候会把解析出来的对象中的props作为属性传递给组件

函数式创建组件

  1. 函数返回一个jsx
  2. props储存的值是一个对象,包含了调用组件时候传递的属性值(不传是一个空对象)
ReactDOM.render(<div>
  <ComponentA props1={12} className="class1">
    <span>lalla</span>
  </ComponentA >
</div>,root)

function ComponentA(props){
  let {props1,className,children}=props
  return <div className={className}>
  <span>{props1}<span>
  <p>{props2}<p>
  {children}//就是<span>lalla</span>
</div>
}

只能通过操作组件的DOM修改组件,使用ref属性获取元素
没有自己的状态state

类式创建组件

基于继承component类来创建组件

class  ComponentB extends React.Component{
  constructor(props){
    super(props)
    //super必须写 否则报错,相当于React.Component.call(this),就是call继承,继承父级私有属性
    //在继承私有的时候,把传递的属性挂载到了子类的实例上,在constructor中就可以使用this.props了
     /** 
     *{
      *  this.props//属性集合
      *  this.refs//refs集合
      *  this.context//上下文
     * }
      */
    this.state={//相当于vue组件中的data
      name:123
    }
  }
  render(){
    return <div>{this.state.name}{this.props.aa}</div>
  }
}

区别

  • 函数创建式:
    1. 操作简单
    2. 能实现的功能简单,只能简单的调取和返回jsx
    3. 没有state状态
  • 类创建式
    1. 操作复杂,实现复杂的业务逻辑
    2. 能够使用声明周期函数
    3. 函数式可以理解为静态组件(很难修改的),类的方式可以基于组件内部的状态来动态渲染组件的内容

相关文章

  • React中Component和PureComponnt组件的区

    两种组件的声明方式,都可以创建React组件import React,{Component,PureCompone...

  • React学习笔记_02

    React 组件和状态 react 组件 1,组件的两种创建方式1,函数组件2,类组件 1,函数组件:使用 JS ...

  • React入门系列(三)创建组件

    React创建组件有两种模式,原生JavaScript和JSX语法,后者是React推荐的构组件方式,因为,它能更...

  • React - 类组件创建

    React创建组件有两种方式 函数式组件 类组件函数式组件已经学过,现在看下类组件怎么写。 函数式组件和类组件区别...

  • React创建组件的两种方式

    1.创建组件两种方式 方式1.函数式组件 方式2.函数式组件--使用ES6的class来定义一个组件 本文目的仅仅...

  • react创建组件的两种方式

    组件的渲染过程 调取组件的时候,babel解析,传递给createElement的第一个参数type不再是字符串标...

  • React创建组件

    一、 React创建组件的三种方式及其区别 React推出后,出于不同的原因先后出现三种定义react组件的方式,...

  • React创建组件的三种方式及其区别

    React创建组件的三种方式及其区别 React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同...

  • 无标题文章

    React创建组件的三种方式及其区别 React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同...

  • Component和PureComponent

    React.Component 1 .使用ES6 classes方式定义React 组件2 .不要创建自己的组件基...

网友评论

      本文标题:react创建组件的两种方式

      本文链接:https://www.haomeiwen.com/subject/jgxzkqtx.html