
React学习--定义组件的两种方法
发布日期:2021-05-07 09:21:54
浏览次数:17
分类:精选文章
本文共 1526 字,大约阅读时间需要 5 分钟。
React组件开发入门 - 函数式组件与类式组件
一、函数式组件
1.1 函数式组件的定义
函数式组件通过函数返回 JSX 来定义 UI 组件。适用于简单组件。
// 代码示例function MyComponent() { console.log('我是函数式组件'); return;}我是用函数定义的组件
1.2 渲染组件到页面
使用 ReactDOM.render
将组件渲染到页面中。
// 代码示例ReactDOM.render(, document.getElementById('test'));
1.3 注意事项
console.log(this)
输出 undefined,因为 Babel 编译后会启用严格模式。- React 解析组件标签后,发现组件是函数定义的,随后调用函数获取虚拟 DOM 并渲染到页面。
一、类式组件
2.1 类的基本知识
2.1.1 类的创建
类可以通过 class
关键字定义,类似于 ES6 中的class Person
。
// 代码示例class Person { constructor(name, age) { this.name = name; this.age = age; } speak() { console.log(`我叫${this.name},年龄是${this.age}`); }}// 创建实例const p1 = new Person('tom', 18);const p2 = new Person('jerry', 19);p1.speak();p2.speak();
2.1.2 类的继承
通过 extends
关键字实现继承。
// 代码示例class Student extends Person { constructor(name, age, grade) { super(); // 调用父类构造器 this.grade = grade; } speak() { console.log(`我叫${this.name},年龄是${this.age},读的是${this.grade}年级`); } study() { console.log('我很努力学习'); }}const s1 = new Student('小张', 15, '高一');s1.speak();s1.study();
2.2 类式组件
类式组件通过类继承 React.Component
来定义 UI 组件,适用于复杂组件。
// 代码示例class MyComponent extends React.Component { render() { return (); }}// 渲染组件到页面ReactDOM.render(我是用类定义的组件
, document.getElementById('test'));
2.3 注意事项
- 类式组件的重点在于继承和
render
方法。 render
方法放在原型对象上,供实例调用。this
在render
中指向组件实例。
总结
- 类中的构造器不是必须的,只有在需要初始化时才需要写。
- 子类构造器中必须调用
super()
。 - 类定义的方法放在原型对象上,供实例调用。
通过以上内容,应该对 React 组件开发有一个基本的理解,可以进一步学习组件间通信、状态管理等高级内容。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月02日 22时01分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
剑指offer JZ31 整数中1出现的次数
2019-03-04
实现基于scrapy框架的天气预报爬虫hengYangSpaider @572311文
2019-03-04
maven打包指定名称并去除jar-with-dependencies后缀
2019-03-04
Netty4服务端入门代码示例
2019-03-04
操作系统前传第六课--开发中的辅助工具
2019-03-04
Linux系统编程44 信号 - 信号的响应过程分析!!!
2019-03-04
VL53L0x TOF激光测距的 stm32 HAL库驱动代码
2019-03-04
怎么玩LOG4J
2019-03-04
Oracle创建用户,分配表空间
2019-03-04
自定义标签(JSP2.0)简单标签
2019-03-04
MyBatis自定义类型转换器
2019-03-04
机器学习(湖北师范大学教程)-极大似然估计算法
2019-03-04
读《红楼梦》有感
2019-03-04
【C# 重构】—参数化查询, 需要参数,但未提供该参数
2019-03-04
决策树(二)—— ID3和C4.5
2019-03-04
MySQL~教你满分回答什么是数据库索引? 索引的数据结构是什么? 什么是事务?
2019-03-04
操作系统~进程的状态、转换、控制
2019-03-04
操作系统~线程概念以及多线程模型
2019-03-04
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,时间复杂度均为O(1))
2019-03-04
Python:函数 ----》装饰器函数
2019-03-04