React组件的应用介绍

目录
  • 1. 介绍
  • 2. 组件的创建方式
    • 2.1 函数创建组件
    • 2.2 类组件
  • 3. 父子组件传值
    • 3.1 函数组件
    • 3.2 类组件

1. 介绍

组件允许你将 UI 拆分为独立可复用的代码片段,并对每个片段进行独立构思。从概念上类似于 JavaScript 类或函数。它接受任意的形参( props ),并返回用于描述页面展示内容的 React元素( jsx )。 定义好的组件一定要有返回值。

react中定义组件的2种方式

  • 函数组件(无状态组件/UI组件)
  • 类组件(状态组件/容器组件)

2. 组件的创建方式

2.1 函数创建组件

注意点:

  • 函数组件(无状态组件):使用JS的函数创建组件;
  • 函数名称必须以大写字母开头;
  • 函数组件必须有返回值(jsx/null),表示该组件的结构,且内容必须有顶级元素包裹。

使用:

import React, { Component } from 'react'
// 定义函数组件  如果你安装了jsx插件,则可以通过 【rfc】 完成创建
// 1.使用js中的定义函数
// 2.函数名称,首字母大写
// 3.必须要有jsx/null返回值,如果是jsx则一定要有顶层元素包裹
const App = () => {
  return (
    <div>
      <h3>我是一个App函数组件</h3>
    </div>
  )
}
export default App

2.2 类组件

注意点:

  1. 使用 ES6 语法的 class 创建的组件(状态组件)
  2. 类名称必须要大写字母开头
  3. 类组件要继承 React.Component 父类,从而可以使用父类中提供的方法或者属性
  4. 类组件必须提供 render 方法,用于页面结构渲染,结构必须要有顶级元素,且必须 return 去返回

使用:

import React, { Component } from 'react'
// 定义类组件  如果你安装了jsx插件,则可以通过 【rcc】来创建类组件
// 1.要以es6的定义类来定义 ,必须以class定义类
// 2.此类必须要继承父类[Component]
// 3.此类必须要有一个成员方法 render,此方法中必须要返回jsx/null,如果是jsx必须要有顶层元素
class App extends Component {
  render() {
    return (
      <div>
        <h3>App之类组件</h3>
      </div>
    )
  }
}
export default App

3. 父子组件传值

组件间传值,在React中是通过只读属性 props 来完成数据传递的。

props:接受任意的形参,并返回用于描述页面展示内容的 React 元素。

props中的数据是不能被修改的,只能读取。

props是一个单向数据流。 父流向子,子不能直接去修改 props 中的数据。

3.1 函数组件

import React, { Component } from 'react'
// 函数组件间的通信
// 子组件通过入参 props来接收 父组件传过来的数据  props它是一个对象
const Child = props => {
  let {title} = props
  console.log(props)
  return (
    <div>
      <h3>Child组件 -- {title}</h3>
    </div>
  )
}
// 标准写法
// const Child = ({ title = '默认值', fn }) => {
//   console.log(fn())
//   return (
//     <div>
//       <h3>Child组件 -- {title}</h3>
//     </div>
//   )
// }
const App = () => {
  // 在react中的方法,先定义后调用
  const fn = () => {
    return 'fn'
  }
  return (
    <div>
      <h3>App组件</h3>
      {/* 通过自定义属性,可以向子组件传递数据 ,此数据它是单向数据流,子组件不能直接修改 */}
      <Child title="hello" num={100} obj={{ id: 1 }} fn={fn} />
      {/* <Child /> */}
    </div>
  )
  // function fn() {
  //   return 'function'
  // }
}
export default App

3.2 类组件

import React, { Component } from 'react'
// 类组件 父传子
// 子组件它是通过 成员属性this.props来接受
class Child extends Component {
  render() {
    // 得到父组件传过来的自定义属性数据
    let { title = '默认值', fn } = this.props
    console.log(fn())
    return (
      <div>
        <h3>Child组件 -- {title}</h3>
      </div>
    )
  }
}
class App extends Component {
  fn = arg => () => 'fn@@@ -- ' + arg
  render() {
    return (
      <div>
        <h3>App</h3>
        {/* 注意:子组件中打印时会调用函数,所以这里传的值一定得是函数,而不是执行函数过后的数据 */}
        <Child title="我是标题" fn={this.fn(200)} />
      </div>
    )
  }
}
export default App

到此这篇关于React组件的应用介绍的文章就介绍到这了,更多相关React组件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • React组件如何优雅地处理异步数据详解

    目录 前言 API介绍 Suspense Error Boundaries 完整方案 处理异步请求的子组件 外层组件 总结 前言 我们在编写React应用的时候,常常需要在组件里面异步获取数据.因为异步请求是需要一定时间才能结束的,通常我们为了更好的用户体验会在请求还没有结束前给用户展示一个loading的状态,然后如果发生了错误还要在页面上面展示错误的原因,只有当请求结束并且没有错误的情况下,我们才渲染出最终的数据.这个需求十分常见,如果你的代码封装得比较好的话,你的处理逻辑大概是这样的: c

  • React组件化的一些额外知识点补充

    目录 React的额外补充 Portals的使用 Fragment的使用 严格模式StrictMode 总结 React的额外补充 Portals的使用 某些情况下,我们希望渲染的内容独立于父组件,甚至是独立于当前挂载到的DOM元素中(默认都是挂载到id为root的DOM 元素上的). Portal 提供了一种将子节点渲染到存在于父组件以外的 DOM 节点的优秀的方案: 第一个参数(child)是任何可渲染的 React 子元素,例如一个元素,字符串或 fragment; 第二个参数(conta

  • react 组件实现无缝轮播示例详解

    目录 正文 无缝轮播 实现思路 构思使用时代码结构 Carousel组件 CarouselItem组件 完善组件 完成小圆点 正文 需求是做一个无缝轮播图,我说这不是有很多现成的轮子吗?后来了解到他有一个特殊的需求,他要求小圆点需要在轮播图外面,因为现在大部分插件都是将小圆点写在轮播图内部的,这对于不了解插件内部结构的小伙伴确实不知道如何修改. 很久没有写插件的我准备写一个插件(react) 无缝轮播 无缝轮播从最后一张到第一张的过程中不会原路返回,它就像轮子似的,从结束到开始是无缝连接的,非常

  • react组件的创建与更新实现流程详解

    目录 React源码执行流程图 legacyRenderSubtreeIntoContainer legacyCreateRootFromDOMContainer createLegacyRoot ReactDOMBlockingRoot createRootImpl createContainer createFiberRoot createHostRootFiber createFiber updateContainer 总结 这一章节就来讲讲ReactDOM.render()方法的内部实现

  • React HOC高阶组件深入讲解

    目录 1. 概念 2. 属性代理 2.1 代理props 2.2 条件渲染 2.3 添加状态 3. 反向继承 3.1 拦截渲染 3.2 劫持生命周期 3.3 操作state 3.4 修改react树 3.5 记录渲染性能 4. 使用装饰器 4.1 安装和配置 4.2 使用 5.总结 1. 概念 高阶组件和高阶函数的类似,使用函数接收一个组件,并返回一个组件. function withList(WrapComponent) { return class extends Component { r

  • React组件的应用介绍

    目录 1. 介绍 2. 组件的创建方式 2.1 函数创建组件 2.2 类组件 3. 父子组件传值 3.1 函数组件 3.2 类组件 1. 介绍 组件允许你将 UI 拆分为独立可复用的代码片段,并对每个片段进行独立构思.从概念上类似于 JavaScript 类或函数.它接受任意的形参( props ),并返回用于描述页面展示内容的 React元素( jsx ). 定义好的组件一定要有返回值. react中定义组件的2种方式 函数组件(无状态组件/UI组件) 类组件(状态组件/容器组件) 2. 组件

  • React过渡动画组件基础使用介绍

    目录 1. 基础使用 2. 将animate.css集成到csstranistion中 3. 列表过渡 4. switchTransition动画 5. 路由切换过渡 6. 高阶组件实现路由切换过渡 1. 基础使用 介绍: 在项目中可能会给一些组件的显示或隐藏添加某种过渡动画,这样可以很好的增加用户的使用体验, react-transition-group 是 react 的第三方模块,借助这个模块可以实现动画切换效果. 安装: yarn add react-transition-group 使

  • React路由渲染方式与withRouter高阶组件及自定义导航组件应用详细介绍

    目录 1. 路由的三种渲染方式 1.1 component渲染方式 1.2 render方式渲染 1.3 案例-登录成功才能访问某个页面 1.4 children方式渲染 2. withRouter高阶组件 3. 自定义导航组件 1. 路由的三种渲染方式 1.1 component渲染方式 描述: 这种渲染方式有两种,一种是类方式渲染,一种是函数方式渲染. 语法: <Route path="/home" component={Home} /> 或 <Route pat

  • React组件封装中三大核心属性详细介绍

    目录 1.介绍 2.state 概念 演示 3.props 概念 props与state区别 4.refs 概念 refs种类 5.父子组件 什么是父子组件 父子组件之间传值 1.介绍 React组件中默认封装了很多属性,有的是提供给开发者操作的,其中有三个属性非常重要:state.props.refs. 2.state 概念 state是类组件的一个默认属性,用于标识类组件的状态,负责更新UI,让页面动态变化,当state变化时,组件将被重新渲染. 函数组件没有对象属性(babel默认开启了局

  • ES6下React组件的写法示例代码

    本文主要跟大家分享了ES6下React组件的写法示例,下面来一起看看详细的介绍: 一:定义React组件 class Hello extends React.Component { render() { return <h1>Hello, {this.props.value}</h1>; } } 二:声明prop类型与默认prop class Hello extends React.Component { // ... } Hello.propTypes = { value: Re

  • React组件refs的使用详解

    ref顾名思义我们知道,其实它就可以被看座是一个组件的参考,也可以说是一个标识.作为组件的属性,其属性值可以是一个字符串也可以是一个函数. 其实,ref的使用不是必须的.即使是在其适用的场景中也不是非用不可的,因为使用ref实现的功能同样可以转化成其他的方法来实现.但是,既然ref有其适用的场景,那也就是说ref自有其优势.关于这一点和ref的适用场景,官方文档中是这样说的: 在从 render 方法中返回 UI 结构之后,你可能想冲出 React 虚拟 DOM 的限制,在 render 返回的

  • 编写React组件项目实践分析

    当我刚开始写React的时候,我看过很多写组件的方法.一百篇教程就有一百种写法.虽然React本身已经成熟了,但是如何使用它似乎还没有一个"正确"的方法.所以我(作者)把我们团队这些年来总结的使用React的经验总结在这里.希望这篇文字对你有用,不管你是初学者还是老手. 开始前: 我们使用ES6.ES7语法如果你不是很清楚展示组件和容器组件的区别,建议您从阅读这篇文章开始如果您有任何的建议.疑问都清在评论里留言 基于类的组件 现在开发React组件一般都用的是基于类的组件.下面我们就来

  • React 组件转 Vue 组件的命令写法

    基于目前React和Vue比较火,开发react-to-vue工具的目的是为了进一步提高组件的可复用用性,让组件复用不仅仅局限在一个框架里面 简介 对于react-to-vue工具,转化的是基本的react component,而不是全部的react应用.而基本react component的定义更多是基于props和state来渲染的组件,其中也可以包括发请求. 本文先介绍两个框架的组件共性和不兼容的地方,再介绍react-to-vue的使用和原理.在实际业务中,陆金所100多个的react基

  • react组件从搭建脚手架到在npm发布的步骤实现

    最近公司给公司里架设了私有的npm仓库,相应地也需要一个用来发布react组件用的脚手架,在这个过程中又又又又复习了一下webpack,在这里分享下脚手架搭建的过程. 首先,我们预期的脚手架具有如下功能 开发组件时可以实时预览 对组件各种资源进行打包(js/css/图片等) 一键打包发布 1.创建项目 脚手架的名字暂时取react-simple-component-boilerplate. 首先创建一个新目录用于放我们的文件: mkdir react-simple-component-boile

  • React组件内事件传参实现tab切换的示例代码

    本文介绍了React组件内事件传参实现tab切换的示例代码,分享给大家,具体如下: 组件内默认onClick事件触发函数actionClick, 是不带参数的, 不带参数的写法: 如onClick= { actionItem } 带参数的写法, onClick = { this.activateButton.bind(this, 0) } 下面是一个向组件内函数传递参数的小例子 需求: 在页面的底部, 有四个按钮, 负责切换内容, 当按钮被点击时, 变为激活状态, 其余按钮恢复到未激活状态 分析

随机推荐