欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React組件通信淺析

 更新時(shí)間:2022年12月26日 09:31:06   作者:落雪小軒韓  
這篇文章主要介紹了React組件通信,在開發(fā)中組件通信是React中的一個(gè)重要的知識(shí)點(diǎn),本文通過(guò)實(shí)例代碼給大家講解react中常用的父子、跨組件通信的方法,需要的朋友可以參考下

1、函數(shù)式組件

<script type="text/babel">
  // 1. 創(chuàng)建函數(shù)式組件
  function Demo() {
   // 里面的this是undefined,因?yàn)閎abel編譯后開啟了嚴(yán)格模式
    return <h2>我是用函數(shù)定義的組件(適用于【簡(jiǎn)單組件】的定義)</h2>
  }
  // 2. 渲染組件到頁(yè)面
  ReactDOM.render(<Demo/>,document.getElementById('test'))
</script>

執(zhí)行了ReactDOM.render(<Demo/>,document.getElementById('test'))之后,React解析組件標(biāo)簽,找到了Demo組件,發(fā)現(xiàn)組件是用函數(shù)定義的,隨后調(diào)用該函數(shù),將返回的虛擬DOM轉(zhuǎn)為真實(shí)DOM呈現(xiàn)在頁(yè)面中

注意:①函數(shù)名首字母必須大寫;②函數(shù)要有返回值;③render里面要寫組件標(biāo)簽

2、類式組件

(1)類的基本知識(shí)

<script type="text/javascript" >
	//創(chuàng)建一個(gè)Person類
	class Person {
		//構(gòu)造器方法
		constructor(name,age){
			//構(gòu)造器中的this是類的實(shí)例對(duì)象
			this.name = name
			this.age = age
		}
		//一般方法
		speak(){
			//speak方法放在類的原型對(duì)象上,供實(shí)例使用
			//通過(guò)Person實(shí)例調(diào)用speak時(shí),speak中的this就是Person實(shí)例
			console.log(`我叫${this.name},我年齡是${this.age}`);
		}
	}
	//創(chuàng)建一個(gè)Student類,繼承于Person類
	class Student extends Person {
		constructor(name,age,grade){
			super(name,age)
			this.grade = grade
			this.school = '清華大學(xué)'
		}
		//重寫從父類繼承過(guò)來(lái)的方法
		speak(){
			console.log(`我叫${this.name},我年齡是${this.age},我讀的是${this.grade}年級(jí)`);
			this.study()
		}
		study(){
			//study方法放在了類的原型對(duì)象上,供實(shí)例使用
			//通過(guò)Student實(shí)例調(diào)用study時(shí),study中的this就是Student實(shí)例
			console.log('我很努力的學(xué)習(xí)');
		}
	}
	class Car {
		constructor(name,price){
			this.name = name
			this.price = price
			// this.wheel = 4
		}
		//類中可以直接寫賦值語(yǔ)句,如下代碼的含義是:給Car的實(shí)例對(duì)象添加一個(gè)屬性,名為a,值為1
		a = 1
		wheel = 4
		static demo = 100
	}
	const c1 = new Car('奔馳c63',199)
	console.log(c1);
	console.log(Car.demo);
</script>

1.類中的構(gòu)造器不是必須要寫的,要對(duì)實(shí)例進(jìn)行一些初始化的操作,如添加指定屬性時(shí)才寫。

2.如果A類繼承了B類,且A類中寫了構(gòu)造器,那么A類構(gòu)造器中的super是必須要調(diào)用的。

3.類中所定義的方法,都放在了類的原型對(duì)象上,供實(shí)例去使用。

(1)類式組件

<script type="text/babel">
	class MyComponent extends React.Component {
		render(){
			//render是放在MyComponent的原型對(duì)象上,供實(shí)例使用。
			//render中的this是MyComponent的實(shí)例對(duì)象 <=> MyComponent組件實(shí)例對(duì)象。
			console.log('render中的this:',this);
			return <h2>我是用類定義的組件(適用于【復(fù)雜組件】的定義)</h2>
		}
	}
	//2.渲染組件到頁(yè)面
	ReactDOM.render(<MyComponent/>,document.getElementById('test'))
</script>

執(zhí)行了ReactDOM.render(<MyComponent/>,document.getElementById('test'))之后,React解析組件標(biāo)簽,找到了MyComponent組件。發(fā)現(xiàn)組件是使用類定義的,隨后new出來(lái)該類的實(shí)例,并通過(guò)該實(shí)例調(diào)用到原型上的render方法。將render返回的虛擬DOM轉(zhuǎn)為真實(shí)DOM,隨后呈現(xiàn)在頁(yè)面中。

到此這篇關(guān)于React組件通信淺析的文章就介紹到這了,更多相關(guān)React組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React元素與組件的區(qū)別示例詳解

    React元素與組件的區(qū)別示例詳解

    這篇文章主要為大家介紹了React元素與組件的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • ReactRouter的實(shí)現(xiàn)方法

    ReactRouter的實(shí)現(xiàn)方法

    這篇文章主要介紹了ReactRouter的實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 在React項(xiàng)目中使用TypeScript詳情

    在React項(xiàng)目中使用TypeScript詳情

    這篇文章主要介紹了在React項(xiàng)目中使用TypeScript詳情,文章通過(guò)圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • React?antd中setFieldsValu的簡(jiǎn)便使用示例代碼

    React?antd中setFieldsValu的簡(jiǎn)便使用示例代碼

    form.setFieldsValue是antd?Form組件中的一個(gè)方法,用于動(dòng)態(tài)設(shè)置表單字段的值,它接受一個(gè)對(duì)象作為參數(shù),對(duì)象的鍵是表單字段的名稱,值是要設(shè)置的字段值,這篇文章主要介紹了React?antd中setFieldsValu的簡(jiǎn)便使用,需要的朋友可以參考下
    2023-08-08
  • 通過(guò)React-Native實(shí)現(xiàn)自定義橫向滑動(dòng)進(jìn)度條的 ScrollView組件

    通過(guò)React-Native實(shí)現(xiàn)自定義橫向滑動(dòng)進(jìn)度條的 ScrollView組件

    開發(fā)一個(gè)首頁(yè)擺放菜單入口的ScrollView可滑動(dòng)組件,允許自定義橫向滑動(dòng)進(jìn)度條,且內(nèi)部渲染的菜單內(nèi)容支持自定義展示的行數(shù)和列數(shù),在內(nèi)容超出屏幕后,渲染順序?yàn)榭v向由上至下依次排列,對(duì)React Native橫向滑動(dòng)進(jìn)度條相關(guān)知識(shí)感興趣的朋友一起看看吧
    2024-02-02
  • 詳解react-native-fs插件的使用以及遇到的坑

    詳解react-native-fs插件的使用以及遇到的坑

    本篇文章主要介紹了react-native-fs插件的使用以及遇到的坑,詳細(xì)的介紹了react-native-fs安裝使用,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-09-09
  • 詳解如何在React函數(shù)式組件中使用MobX

    詳解如何在React函數(shù)式組件中使用MobX

    MobX 是一個(gè)簡(jiǎn)潔的狀態(tài)管理庫(kù),它通過(guò)透明的函數(shù)響應(yīng)式編程(TFRP)使得狀態(tài)管理變得簡(jiǎn)單和可擴(kuò)展,下面就跟隨小編一起來(lái)了解一下如何在React函數(shù)式組件中使用MobX吧
    2024-01-01
  • ReactNative之FlatList的具體使用方法

    ReactNative之FlatList的具體使用方法

    本篇文章主要介紹了ReactNative之FlatList的具體使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • react16.8.0以上MobX在hook中的使用方法詳解

    react16.8.0以上MobX在hook中的使用方法詳解

    這篇文章主要為大家介紹了react16.8.0以上MobX在hook中的使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • React拆分窗格組件的兩種方法

    React拆分窗格組件的兩種方法

    這篇文章主要介紹了React拆分窗格組件的兩種方法,使用第三方庫(kù)react-split-pane適用于快速實(shí)現(xiàn)拆分窗格功能,并且對(duì)功能和樣式的要求較為簡(jiǎn)單的場(chǎng)景,本文結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07

最新評(píng)論