React中函数组件与类组件的两种使用
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中函数组件与类组件的两种使用的更多相关文章
- React - 组件:类组件
目录: 1. 类组件有自己的状态 2. 继承React.Component-会有生命周期和this 3. 内部需要一个render函数(类组件会默认调用render方法,但不会默认添加,需要手动填写r ...
- Vue里面提供的三大类钩子及两种函数
在路由跳转的时候,我们需要一些权限判断或者其他操作.这个时候就需要使用路由的钩子函数. 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数. 总体来讲vue里面提供了三大类钩子 ...
- Oracle中函数/过程返回结果集的几种方式
原文 Oracle中函数/过程返回结果集的几种方式 Oracle中函数/过程返回结果集的几种方式: 以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过. ...
- Android中EditText显示明文与密文的两种方式
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录输入框显示.隐藏密码的简单布局以及实现方式. 效果图 代码分析 方式一 /**方式一:*/ private void sh ...
- 类与类之间的两种关系------新标准c++程序设计
在c++中,类和类之间有两种基本关系:复合关系和继承关系. 复合关系也称为“has a”关系或“有”的关系,表现为封闭类,即一个类以另一个类的对象作为成员变量. 继承关系也称为“is a”关系或“是” ...
- 【转】oracle 中随机取一条记录的两种方法
oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COU ...
- 在PHP代码中处理JSON 格式的字符串的两种方法:
总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...
- 在eclipse中使用Maven建web工程的两种方式
Eclipse版本:Neon Release (4.6.0) Maven版本:3.3.9 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建 ...
- react 中的无状态函数式组件
无状态函数式组件,顾名思义,无状态,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑. 其实无状态函数式组件也是 ...
- React函数式组件和类组件[Dan]
一篇对Dan的 How Are Function Components Different from Classes? 一文的个人阅读总结,内容来自于此.强烈推荐阅读 Dan Abramov.的博客. ...
随机推荐
- 一文读懂配置管理(CM)
配置管理(Configuration Management),是一个用于建立和维护产品性能.功能和物理属性,并与其需求.设计和操作信息在整个生命周期内保持一致的系统工程. 配置管理是 ITIL(Inf ...
- Hudi Bucket Index 在字节跳动的设计与实践
由字节跳动数据湖团队贡献的 RFC-29 Bucket Index 在近期合入 Hudi 主分支,本文详细介绍 Hudi Bucket Index 产生的背景与实践经验.字节跳动数据湖团队持续招人中, ...
- 火山引擎数智平台旗下DataWind升级半年报 6大功能助力企业数据消费
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 "以数据消费促数据生产"--是火山引擎提出的数据飞轮的核心理念,在这一理念的指导下,智能数 ...
- 应用火山引擎 DataTester“避坑”,抖音实现用 A/B 实验快速试错
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 A/B 测试产品可以说是企业科学决策的基础"设施",能够帮助企业快速迭代产品. 在字节跳动,每 ...
- Spring Boot Admin 授权配置
Admin 服务端配置 添加 POM 引用 <dependency> <groupId>org.springframework.boot</groupId> < ...
- 用 ChatGPT 写一篇《ChatGPT 会取代我们的工作吗》
自从 ChatGPT 火爆以后,最常谈到的话题就是 ChatGPT 会取代我们的工作吗?在写这篇内容时我有个大胆的想法,那就是让 ChatGPT 来取代我的工作. 首先,我决定直接让 ChatGPT ...
- 用 WebRTC 打造一个音乐教育 App,要解决哪些音质难题?
在去年疫情期间,在线教育行业获得了井喷式的发展,这背后的技术功臣非 RTC 莫属.本文将分享 RTC 技术在音乐教育场景下的实践经验. 作者| 逸城 审校| 泰一 音乐教育场景 - 在线陪练 2020 ...
- Codeforces Round #716 (Div. 2) A ~ D 个人题解
补题链接:Here 1514A. Perfectly Imperfect Array 题意:给定长度为 \(n\) 的 \(a\) 序列,请问是否存在子序列积不存在平方根 思路:子序列的话,一个元素也 ...
- <vue 路由 2、router-link标签属性>
说明:在上一节的工程下继续讲解 一. 知识点说明 上一节中, <router-link>我们只是使用了一个属性: to, 用于指定跳转的路径.<router-link> ...
- 【RK3399】2.制作ubuntu20.04 roomfs
firefly自带的文件系统,由于缺少一些基本功能模块,因此,我们可以自己手动制作一个ubuntu20.04的文件系统. 下载Ubuntu根文件系统 http://cdimage.ubuntu.com ...