iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >React构建组件的几种方式及区别
  • 955
分享到

React构建组件的几种方式及区别

React构建组件方式区别React构建组件方式 2022-11-13 14:11:35 955人浏览 安东尼
摘要

目录一、组件是什么二、如何构建函数式创建通过 React.createClass 方法创建继承 React.Component 创建三、区别一、组件是什么 组件就是把图形、非图形的各

一、组件是什么

组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式

React中,一个类、一个函数都可以视为一个组件

组件所存在的优势:

  • 降低整个系统的耦合度,在保持接口不变的情况下,我们可以替换不同的组件快速完成需求,例如输入框,可以替换为日历、时间、范围等组件作具体的实现
  • 调试方便,由于整个系统是通过组件组合起来的,在出现问题的时候,可以用排除法直接移除组件,或者根据报错的组件快速定位问题,之所以能够快速定位,是因为每个组件之间低耦合,职责单一,所以逻辑会比分析整个系统要简单
  • 提高可维护性,由于每个组件的职责单一,并且组件在系统中是被复用的,所以对代码进行优化可获得系统的整体升级

二、如何构建

React目前来讲,组件的创建主要分成了三种方式:

  • 函数式创建
  • 通过 React.createClass 方法创建
  • 继承 React.Component 创建

函数式创建

React Hooks出来之前,函数式组件可以视为无状态组件,只负责根据传入的props来展示视图,不涉及对state状态的操作

大多数组件可以写为无状态组件,通过简单组合构建其他组件

React中,通过函数简单创建组件的示例如下:

function HelloComponent(props, ) {
  return <div>Hello {props.name}</div>
}

通过 React.createClass 方法创建

React.createClass是react刚开始推荐的创建组件的方式,目前这种创建方式已经不怎么用了

像上述通过函数式创建的组件的方式,最终会通过babel转化成React.createClass这种形式,

转化成如下:

function HelloComponent(props) {
  return React.createElement(
    "div",
    null,
    "Hello ",
    props.name
  );
}

由于上述的编写方式过于冗杂,目前基本上不使用上

继承 React.Component 创建

同样在react hooks出来之前,有状态的组件只能通过继承React.Component这种形式进行创建

有状态的组件也就是组件内部存在维护的数据,在类创建的方式中通过this.state进行访问

当调用this.setState修改组件的状态时,组价会再次会调用render()方法进行重新渲染

通过继承React.Component创建一个时钟示例如下:

class Timer extends React.Component {
  constructor(props) {
    super(props);
    this.state = { seconds: 0 };
  }

  tick() {
    this.setState(state => ({
      seconds: state.seconds + 1
    }));
  }

  componentDidMount() {
    this.interval = setInterval(() => this.tick(), 1000);
  }

  componentWillUnmount() {
    clearInterval(this.interval);
  }

  render() {
    return (
      <div>
        Seconds: {this.state.seconds}
      </div>
    );
  }
}

三、区别

由于React.createClass创建的方式过于冗杂,并不建议使用

而像函数式创建和类组件创建的区别主要在于需要创建的组件是否需要为有状态组件:

  • 对于一些无状态的组件创建,建议使用函数式创建的方式
  • 由于react hooks的出现,函数式组件创建的组件通过使用hooks方法也能使之成为有状态组件,再加上目前推崇函数式编程,所以这里建议都使用函数式的方式来创建组件

在考虑组件的选择原则上,能用无状态组件则用无状态组件

到此这篇关于React构建组件的几种方式及区别的文章就介绍到这了,更多相关React构建组件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: React构建组件的几种方式及区别

本文链接: https://www.lsjlt.com/news/172053.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • React构建组件的几种方式及区别
    目录一、组件是什么二、如何构建函数式创建通过 React.createClass 方法创建继承 React.Component 创建三、区别一、组件是什么 组件就是把图形、非图形的各...
    99+
    2022-11-13
    React构建组件方式区别 React构建组件方式
  • React函数组件和类组件的区别及说明
    目录React函数组件和类组件区别函数组件类组件区别React函数式组件和类组件的优缺点1.类组件的性能消耗比较大2.函数式组件性能消耗小React函数组件和类组件区别 定义组件有两...
    99+
    2022-11-13
    React函数组件 React类组件 React函数
  • vue引用组件的几种方式
    vue引用组件有3种方式:1、通过v-model或者.sync显式控制组件显示隐藏;2、使用js代码进行引用组件;3、使用Vue指令进行引用组件。具体分析如下:Dialog我习惯把这个东西叫做对话框,实际上还有叫做modal(弹窗)组件的 ...
    99+
    2024-04-02
  • vue3组件通信的几种方式分别是这样的
    vue3组件通信的几种方式分别是这样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。vue3组件通信方式为以下几种props$emit$expose / ref$attrsv-...
    99+
    2023-06-22
  • c#创建数组的方式有哪几种
    在C#中,创建数组的方式有以下几种: 使用数组初始化器: int[] numbers = {1, 2, 3, 4, 5}; ...
    99+
    2024-03-05
    c#
  • React传递参数的几种方式
    目录父子组件之间传递参数路由传参 状态提升context引入redux父子组件之间传递参数 父组件往子组件传值,直接用this.props就可以实现 在父组件中,给需要传递...
    99+
    2024-04-02
  • React返回页面的几种方式
    本教程操作环境:windows7系统、react18.0.0版、Dell G3电脑。React返回页面的几种方式?react 移动端返回上一级页面的写法移动端返回上一级页面的写法:import React, {Component} from...
    99+
    2022-11-22
    React
  • React创建组件的的方式汇总
    目录1. 使用函数创建组件2. 使用类创建组件3. 抽离为独立JS文件1. 使用函数创建组件   函数组件:使用JS的函数(或箭头函数)创建的组件   约定1:函数名称必须以大写字母...
    99+
    2024-04-02
  • React创建组件的方式有哪些
    这篇文章主要介绍了React创建组件的方式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。React推出后,出于不同的原因先后出现三种定...
    99+
    2024-04-02
  • vue组件通信有哪几种方式
    vue中组件通信的方式有:1.使用props/$emit实现父子组件通信;2.使用$refs/$parent/$children/$root实现父子组件通信;3.使用$attrs/$listener实现隔代组件通信;4.使用provide/...
    99+
    2024-04-02
  • vue2.0中组件传值的几种方式总结
    目录搭建好测试环境1.方法一父传子子传父2.方法二父传子子传父奇怪的传值3.方法三4.兄弟组件之间传值总结搭建好测试环境 app.vue <template> &l...
    99+
    2022-12-08
    vue2.0组件传值 vue组件传值 vue2.0组件传值方式
  • Spring创建bean的几种方式及使用场景
    目录1、@Configuration注解2、@Bean注解3、@Import注解3.1、导入标记有@Configuration的配置类3.2、导入ImportSelector的实现类...
    99+
    2023-05-18
    Spring创建bean Spring bean
  • React嵌套组件的构建顺序
    目录在React官网中,可以看到对生命周期的描述接着看下嵌套组件接着看看传入多个组件构建总结 偏离一点点主题最后总结在React官网中,可以看到对生命周期的描述 这里有一个疑问是,...
    99+
    2024-04-02
  • 基于React路由跳转的几种方式
    目录React路由跳转的几种方式1. params形式2. 使用state的形式React路由跳转传参问题使用Link传参url传参隐式传参React路由跳转的几种方式 注意: 这里...
    99+
    2024-04-02
  • 浅谈react路由传参的几种方式
    第一种传参方式,动态路由传参 通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示传递的整个url <Link to='/...
    99+
    2024-04-02
  • Vue组件间通信有哪几种方式
    这篇文章将为大家详细讲解有关Vue组件间通信有哪几种方式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Vue 组件间通信有哪几种方式?Vue 组件间通信是面试常考的知识点...
    99+
    2024-04-02
  • JavaBean和SpringBean的区别及创建SpringBean方式
    目录一:对象,JavaBean,SpringBean的区别1.什么是JavaBean2.什么是SpringBean3.SpringBean和JAVABean的区别二:如何定义一个Sp...
    99+
    2024-04-02
  • python数组循环的几种方式
     Python中循环数组有几种方式: for-in循环,可以遍历数组中的每一个元素。while循环,使用索引进行循环。列表推导式,可以快速创建新的列表。递归,可以遍历多维数组。 for-in循环 arr = [1, 2, 3, 4, 5]f...
    99+
    2023-09-03
    python 开发语言
  • vue自定义组件的注册方式有几种
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。创建项目通过 cmd 执行如下示例命令来初始化我们的 Vue 项目vue create helloworld cd helloworld code . npm run s...
    99+
    2023-05-14
    Vue
  • Vue实现组件间通信的几种方式(多种场景)
    目录1、Props 父 >>> 子  (Props)子 >>> 父 ($emit)2、Bus事件总线3、V...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作