React 创建组件的两种方式

函数组件:使用js函数创建的组件
约定1:函数名称必须以大写字母开头
约定2:函数组件必须要有返回值.
如果返回值为null.表示不渲染任何内容。
return null [什么都不会渲染了]
如果没有return会报错的哈 怎么使用函数组件呢?
直接使用函数名作为组件的标签名。
标签名是双标签也可以是单标签。 为什么React的函数组件必须以大写字母开头呢?
因为:React以此来区分是组件还是普通的React元素

函数组件的使用

//src下的index.js文件【入口文件】

import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
//函数组件名以大写字母开头
function Hello() {
return (
<div>我是一个函数组件</div>
)
}
ReactDOM.render(<Hello/>, document.getElementById('root'))

类组件

使用ES6的class创建的组件.
约定1:类名必须以大写字母开头。
约定2:类组件必须去继承Raect.Component的父类,
从而可以使用父类中提供的属性或者方法。
约定3:类组件必须提供render方法
约定4: render方法必须要有返回值,表示该组件的结构。
如果你想什么都不返回的话,可以返回null
return null [什么都不会渲染了]

类组件的简单使用

import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
// 类名必须以大写字母开头。
class Hello extends React.Component{
// 类组件必须提供render方法
render() {
// render方法必须要有返回值。
// 返回的使用使用()包裹,推荐。
return (
<div>我是一个类组件</div>
)
}
}
ReactDOM.render(<Hello/>, document.getElementById('root'))

页面组件很多怎么处理

当我们的页面有很多组件的时候。
我们应该将组件处理出去。
将每个组件放在一个单独的JS文件中。 因为组件是一个独立的个体,
一般我们会放在一个单独的JS文件中去。
如果所有的组件放在同一个文件中。
以后这个文件会越来越大,不利于后期的维护。

抽离组件的步骤

1.创建Hello.js文件
2.引入react.
3.创建组件(函数组件或者类组件)
4.通过 export default 暴露出去
5.在使用的页面中引入
6.使用组件(渲染组件)

抽离组件的简单使用

<!-- 创建Hello.js文件 -->

import React from "react";
class Hello extends React.Component{
render() {
return <div>我是类组件</div>
}
}
export default Hello 在使用的页面 [在使用的页面中引入]
import Hello from './Hello'; ReactDOM.render(<Hello/>, document.getElementById('root'))

React中函数组件与类组件的两种使用的更多相关文章

  1. React - 组件:类组件

    目录: 1. 类组件有自己的状态 2. 继承React.Component-会有生命周期和this 3. 内部需要一个render函数(类组件会默认调用render方法,但不会默认添加,需要手动填写r ...

  2. Vue里面提供的三大类钩子及两种函数

    在路由跳转的时候,我们需要一些权限判断或者其他操作.这个时候就需要使用路由的钩子函数. 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数. 总体来讲vue里面提供了三大类钩子 ...

  3. Oracle中函数/过程返回结果集的几种方式

    原文 Oracle中函数/过程返回结果集的几种方式 Oracle中函数/过程返回结果集的几种方式:    以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过.    ...

  4. Android中EditText显示明文与密文的两种方式

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录输入框显示.隐藏密码的简单布局以及实现方式. 效果图    代码分析 方式一 /**方式一:*/ private void sh ...

  5. 类与类之间的两种关系------新标准c++程序设计

    在c++中,类和类之间有两种基本关系:复合关系和继承关系. 复合关系也称为“has a”关系或“有”的关系,表现为封闭类,即一个类以另一个类的对象作为成员变量. 继承关系也称为“is a”关系或“是” ...

  6. 【转】oracle 中随机取一条记录的两种方法

    oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COU ...

  7. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  8. 在eclipse中使用Maven建web工程的两种方式

    Eclipse版本:Neon Release (4.6.0) Maven版本:3.3.9 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建 ...

  9. react 中的无状态函数式组件

    无状态函数式组件,顾名思义,无状态,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑. 其实无状态函数式组件也是 ...

  10. React函数式组件和类组件[Dan]

    一篇对Dan的 How Are Function Components Different from Classes? 一文的个人阅读总结,内容来自于此.强烈推荐阅读 Dan Abramov.的博客. ...

随机推荐

  1. NDPQ(NDP+PQ),定义分布式数据库新方向

    摘要:云服务提供商构建新的云原生关系数据库系统,专门为云基础架构设计,通常采用将计算和存储分离到独立扩展的分布式层的设计. 本文分享自华为云社区<性能提升100倍!GaussDB(for MyS ...

  2. SpringBoot Docker 发布

    本文是手动模式,可以移步 Intellij IDEA 集成 Docker 发布 使用 Intellij 集成Docker 发布,比较方便 pom 文件 <groupId>com.vipso ...

  3. RandomAccessFile 读写文件

    将目录下的N个日志文件读写到一个文件中. @Test void verification() throws Exception { File f = new File("D:\\Logs&q ...

  4. JDk 与 ADB 环境变量配置

    ### Java环境变量配置 首先,JDK是整个Java的核心,包括了Java运行环境,一推Java工具和Java基础的类库. 网址:https://www.oracle.com/technetwor ...

  5. 升讯威在线客服系统:与QQ、微信的区别和优势

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 请访问:https://kf.shengxunwei.com 文章目录列 ...

  6. JSP | application 对象详解 & 网站计数器实现

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 本篇学习自:C语言中文网,部分内容转载仅供学习使用. \[QAQ \] JSP applicat ...

  7. AcWing 每日一题 - Summer

    本篇解题记录题源来自 AcWing 的 Summer 每日一题 补题链接:Here 2021/07/01 done Week 1 星期一 AcWing 3485. 最大异或和 (Hard 思路 先求出 ...

  8. AtCoder Beginner Contest 189 Personal Editorial

    第一次参加 AtCoder 的比赛,感觉还挺简单. 比赛链接:https://atcoder.jp/contests/abc189 A - Slot // Author : RioTian // Ti ...

  9. <vue 路由 8、keep-alive的使用>

    一.     知识点 1.什么是keep-alive? keep-alive是Vue.js的一个内置组件. 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们.它自身不会渲染一个 DOM 元素,也 ...

  10. Introduction to DFT

    服务器使用 登陆服务器:输入账号密码 打开terminal,保证至少一个terminal窗口是打开的 取消Linux操作系统的屏幕保护 设置Linux EDA工具配置 // 自定义环境变量设置 gvi ...