我的编程空间,编程开发者的网络收藏夹
学习永远不晚

React组件通信浅析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

React组件通信浅析

1、函数式组件

<script type="text/babel">
  // 1. 创建函数式组件
  function Demo() {
   // 里面的this是undefined,因为babel编译后开启了严格模式
    return <h2>我是用函数定义的组件(适用于【简单组件】的定义)</h2>
  }
  // 2. 渲染组件到页面
  ReactDOM.render(<Demo/>,document.getElementById('test'))
</script>

执行了ReactDOM.render(<Demo/>,document.getElementById('test'))之后,React解析组件标签,找到了Demo组件,发现组件是用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM呈现在页面中

注意:①函数名首字母必须大写;②函数要有返回值;③render里面要写组件标签

2、类式组件

(1)类的基本知识

<script type="text/javascript" >
	//创建一个Person类
	class Person {
		//构造器方法
		constructor(name,age){
			//构造器中的this是类的实例对象
			this.name = name
			this.age = age
		}
		//一般方法
		speak(){
			//speak方法放在类的原型对象上,供实例使用
			//通过Person实例调用speak时,speak中的this就是Person实例
			console.log(`我叫${this.name},我年龄是${this.age}`);
		}
	}
	//创建一个Student类,继承于Person类
	class Student extends Person {
		constructor(name,age,grade){
			super(name,age)
			this.grade = grade
			this.school = '清华大学'
		}
		//重写从父类继承过来的方法
		speak(){
			console.log(`我叫${this.name},我年龄是${this.age},我读的是${this.grade}年级`);
			this.study()
		}
		study(){
			//study方法放在了类的原型对象上,供实例使用
			//通过Student实例调用study时,study中的this就是Student实例
			console.log('我很努力的学习');
		}
	}
	class Car {
		constructor(name,price){
			this.name = name
			this.price = price
			// this.wheel = 4
		}
		//类中可以直接写赋值语句,如下代码的含义是:给Car的实例对象添加一个属性,名为a,值为1
		a = 1
		wheel = 4
		static demo = 100
	}
	const c1 = new Car('奔驰c63',199)
	console.log(c1);
	console.log(Car.demo);
</script>

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

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

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

(1)类式组件

<script type="text/babel">
	class MyComponent extends React.Component {
		render(){
			//render是放在MyComponent的原型对象上,供实例使用。
			//render中的this是MyComponent的实例对象 <=> MyComponent组件实例对象。
			console.log('render中的this:',this);
			return <h2>我是用类定义的组件(适用于【复杂组件】的定义)</h2>
		}
	}
	//2.渲染组件到页面
	ReactDOM.render(<MyComponent/>,document.getElementById('test'))
</script>

执行了ReactDOM.render(<MyComponent/>,document.getElementById('test'))之后,React解析组件标签,找到了MyComponent组件。发现组件是使用类定义的,随后new出来该类的实例,并通过该实例调用到原型上的render方法。将render返回的虚拟DOM转为真实DOM,随后呈现在页面中。

到此这篇关于React组件通信浅析的文章就介绍到这了,更多相关React组件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

React组件通信浅析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

React组件通信浅析

这篇文章主要介绍了React组件通信,在开发中组件通信是React中的一个重要的知识点,本文通过实例代码给大家讲解react中常用的父子、跨组件通信的方法,需要的朋友可以参考下
2022-12-26

vue3组件间怎么通信?通信方式浅析

​在我们写 vue3 的项目中,我们都会进行组件通信,我们除了使用 pinia 公共数据源的方式除外,我们还可采用那些更简单的API方法呢?那下面我就来给大家介绍介绍几种父子组件和子父组件通信的方式。
2023-05-14

React组件通信如何实现

这篇文章主要介绍“React组件通信如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React组件通信如何实现”文章能帮助大家解决问题。1. 父子组件通信方式父子组件之间的通信很常见,其中父组
2023-07-05

Vue组件间怎么通信?六种方式浅析

Vue组件间怎么通信?下面本篇文章给大家介绍一下Vue组件通信的六种方式,希望对大家有所帮助!
2023-05-14

React组件间通信方式有哪些

这篇文章主要介绍React组件间通信方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!组件间通信方式总结父组件 => 子组件:PropsInstance Methods子组件 => 父组件:Callback F
2023-06-06

React组件通信实现方式详解

这篇文章主要介绍了React组件通信,在开发中组件通信是React中的一个重要的知识点,本文通过实例代码给大家讲解react中常用的父子、跨组件通信的方法,需要的朋友可以参考下
2023-03-19

React组件间通信的方法有哪些

这篇文章给大家分享的是有关React组件间通信的方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、父子组件通信原理:父组件通过props(与vue中的props区分开)向子组件通信,子组件通过回调事件与
2023-06-25

编程热搜

目录