美文网首页
React 组件编写

React 组件编写

作者: 几度微风 | 来源:发表于2018-12-26 11:58 被阅读0次

react组件有三种编写方式,这里介绍两种比较普遍流行的编写方式.

一·无状态函数定义组件

我们之所以称这种类型的组件为函数定义组件,是因为从字面上来看,它就是一个JavaScript函数。

#组件编写:
import React from 'react';

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>
}
export default Welcome
#组件调用:
import React from 'react';
import Welcome from './welcome';

class App extends Component {
       render() {
            return (
                <div className="App">
                   <header className="App-header">
                        <Welcome name='我是function无状态组件'/>
                   </header>
                </div>
              );
         }
  }

二.ES6 class组件

#组件编写
import React from 'react';

class Tick extends React.Component {
  render() {
    return <h1>我是 {this.props.name}</h1>;
  }
}

export default Tick
#调用方式
import React from 'react';
import Tick from './tick';


class App extends Component {
  minter() {
    return <Tick name="React.Component组件方式" />
  }
  render() {
    return (
      <div className="App">
        <header className="App-header">
          {this.minter()}
          <Welcome name='我是function无状态组件'/>
        </header>
      </div>
    );
  }
}

export default App;

三.两种组件的区别

无状态函数组件:

组件不会被实例化,整体渲染性能得到提升

因为组件被精简成一个render方法的函数来实现的,由于是无状态组件,所以无状态组件就不会在有组件实例化的过程,无实例化过程也就不需要分配多余的内存,从而性能得到一定的提升。

组件不能访问this对象

无状态组件由于没有实例化过程,所以无法访问组件this中的对象,例如:this.ref、this.state等均不能访问。若想访问就不能使用这种形式来创建组件

组件无法访问生命周期的方法

因为无状态组件是不需要组件生命周期管理和状态管理,所以底层实现这种形式的组件时是不会实现组件的生命周期方法。所以无状态组件是不能参与组件的各个生命周期管理的。
无状态组件只能访问输入的props,同样的props会得到同样的渲染结果,不会有副作用

ES6 Class组件:

简洁
组件能访问this对象
组件有访问生命周期的方法

相关文章

  • React学习(5)-React中组件的数据-props

    前言 开发一个React应用,更多的是在编写组件,而React组件最小的单位就是React元素,编写组件的最大的好...

  • 面试题

    React组件的渲染流程是什么? 使用 React.createElement或 JSX编写 React组件,实际...

  • react组件-编写组件

    组件声明 新建组件的命首页字母要为大写,否者在引用的时候会报错,react核心会认为是一个HTML标签,并无法解析...

  • React 组件编写

    react组件有三种编写方式,这里介绍两种比较普遍流行的编写方式. 一·无状态函数定义组件 我们之所以称这种类型的...

  • React Native学习<三> ReactNative入门基

    <一>编写Hello World React Native看起来很像React,只不过其基础组件是原生组件而非we...

  • GrowingIO Design 组件库搭建之单元测试

    前言 GrowingIO Design 是用 React 编写的组件库,本质上就是 React 组件,你可以用像测...

  • React笔记

    1、组件如果我们使用react搭建页面的话,页面就是由我们编写的组件各种组合嵌套而来,可以说组件是react的基本...

  • 03-react-跨组件级通信Context

    react-跨组件级通信- Context 之前编写组件都是通过props或者state的方式来传递组件, 但组件...

  • [FE] 使用 vite 构建 react lib

    背景 最近使用 vite 创建了 React + TypeScript 项目,其中编写了一些 React 组件。就...

  • React Hooks 入门记录

    什么是 Hooks 以往,React 组件都是通过 class 的形式来编写,只有无状态组件才可以用函数来编写。H...

网友评论

      本文标题:React 组件编写

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