React面向组件编程

React面向组件编程

一、函数式组件

官方推荐由类式组件逐步迁移到函数式组件

javascript 复制代码
function MyComponent() {
	console.log('this') // undefined,在严格模式下没有全局属性
	return <h1>函数式组件</h1>
}

const root = document.getElementById('root');
ReactDOM.render(<MyComponent />, root);

执行情况:

  1. React解析组件标签,找到MyComponent
  2. 发现组件是使用函数定义,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后呈现在页面上

二、类式组件

javascript 复制代码
class MyComponent extends React.Component {
	// render是在MyComponent原型对象上,供实例使用
	render() {
			return <h1>类式组件</h1>
	}
}

const root = document.getElementById('root');
ReactDOM.render(<MyComponent />, root);

执行情况:

  1. React解析组件标签,找到MyComponent
    2)发现组件是使用类定义,随后new出来该类实例,并通过该实例调用到原型上的render方法
    3)将render返回的虚拟DOM转为真实DOM,随后呈现在页面上

三、类的基本知识回顾

1)类中的构造器不是必须的,要对实例进行一些初始化操作,比如:添加指定属性

2)如果A类继承B类,且A类中写了构造器函数,那么A类构造器函数中的super是必须要调用的

3)类中所定义的方法,都是放在了类的原型对象上,供实例使用

相关推荐
1024奇点6 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
Csvn6 小时前
WASM
前端
Warren2Lynch7 小时前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
Knight_AL7 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
修己xj8 小时前
我用 AI 给自己写了一个 Markdown 编辑器,然后把它开源了
前端
FRing038 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
幸运小猿8 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
by209998 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河8 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
IT召唤狮9 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php