React之元件(component)之間的通訊
元件通訊
- 元件是獨立封閉的單元
- 一個完整的頁面通常是由多個元件組合而成的
- 元件之間經常需要共享一些資料,所以就需要元件之間能夠通訊
props
props
用於接收外界向元件中傳遞的資料
實現方法:
- 渲染元件時,在元件標籤中使用自定義屬性向元件內部傳遞資料
- 元件內部可以使用 props 來接收自定義屬性傳遞的資料
- 函式元件: props
- 類元件: this.props
注意事項:
- 除了字串之外,其他型別的資料都需要使用 {}
- props 是
只讀屬性
,不能修改裡面的資料 - 使用類元件時,如果寫了建構函式,則需要將 props 傳遞給 super(),否則在 constructor 中無法使用props (其他方法可以使用)
類元件中接收自定義屬性中的資料
類元件方式1:
import React from 'react'
import ReactDOM from 'react-dom'
class App extends React.Component{
render () {
return (
<div>
大家好,我叫{this.props.name},今年{this.props.age}歲
</div>
)
}
}
ReactDOM.render(<App name='zs' age={18} />,document.querySelector('#app'))
元件內部會議物件形式將資料儲存在props
屬性中
this.props = {
name:'zs',
age: 18
}
呼叫元件時,使用自定義屬性將資料傳遞到元件內部
this.props.name
this,props.age
類元件方式2:
如果寫了建構函式,則需要將props傳遞給super()
,否則在constructor
中無法使用props(其他方法可以使用)
import React from 'react'
import ReactDOM from 'react-dom'
class App extends React.Component{
constructor (props) {
super(props)
//console.log(this.props)
}
render () {
return (
<div>
大家好,我叫{this.props.name},今年{this.props.age}歲
</div>
)
}
}
ReactDOM.render(<App name='zs' age={18} />,document.querySelector('#app'))
函式元件中接收自定義屬性中的資料
import React from 'react'
import ReactDOM from 'react-dom'
const App = (props) => {
reyurn (
<div>
大家好,我叫{props.name},今年{props.age}歲
</div>
)
}
ReactDOM.render(<App name='zs' age={18} />,document.querySelector('#app'))
父子元件巢狀
在一個元件中可以巢狀另一個元件,外層的元件就是父元件,內層的元件就是子元件
實現方法: 父元件的== render 方法==中呼叫子元件
import React from 'react';
import ReactDOM from 'react-dom';
import './assets/css/fs.css'
// 建立子元件
class Son extends React.Component {
render () {
return (
<div className="son">我是子元件</div>
)
}
}
// 建立父元件
class Father extends React.Component {
render () {
return (
<div className="father">
<div>我是父元件</div>
{/* 父元件在render方法中渲染子元件 */}
<Son />
</div>
)
}
}
ReactDOM.render(<Father />, document.querySelector('#app'))
父向子傳值
父元件渲染子元件時,將state中的資料新增到子元件的自定義屬性中
實現要點:
- 父元件要有state,內部儲存準備傳遞給子元件的資料
- 父元件呼叫子元件時,為子元件新增自定義屬性,將 state 中的資料設定為屬性的值
- 子元件中使用props接收父元件資料
import React from 'react'
import ReactDOM from 'react-dom'
import './assets/css/fs.css'
// 目標: 子元件接收到父元件的資料
class Son extends React.Component {
render () {
return (
<div className="son">
我是子元件<br />
{/* 子元件使用 props 來接收父元件資料 */}
接收到父元件的資料為: {this.props.name} - {this.props.age}
</div>
)
}
}
class Father extends React.Component {
state = {
name: '二狗子',
age: 8
}
render () {
return (
<div className="father">
我是父元件
{/* 父元件在呼叫子元件時,將資料通過自定義屬性傳遞給子元件 */}
<Son name={this.state.name} age={this.state.age} />
</div>
)
}
}
ReactDOM.render(<Father />, document.querySelector('#app'))
相關文章
- React - 元件之間的通訊React元件
- React中元件之間通訊的方式React元件
- vue元件之間的通訊Vue元件
- 元件之間的通訊LiveDataBus元件LiveData
- React 《元件間通訊》React元件
- webRtc及元件之間通訊Web元件
- 使用 Rxjs 解決 Angular Component 之間的通訊問題JSAngular
- Vue子元件與父元件之間的通訊Vue元件
- React Components之間的通訊方式瞭解下React
- vue中兄弟之間元件通訊Vue元件
- React中元件間通訊的方式React元件
- Vue元件之間通訊的三種方式Vue元件
- 前端學習(2370):元件之間的通訊方式前端元件
- 前端學習(2371):元件之間的通訊方式前端元件
- 3.Vue非父子元件之間的通訊Vue元件
- vue 元件之間通訊eventBus使用方法Vue元件
- 探索 React 元件之間的生命週期React元件
- SAP UI5 Web Component React應用如何在Component之間跳轉UIWebReact
- react之組建通訊React
- React元件通訊React元件
- React 元件通訊React元件
- vue元件通訊之propsVue元件
- 深入解析React資料傳遞之元件內部通訊React元件
- @Bean和@Component之間的區別?Bean
- Android 程式之間通訊Android
- 【React】元件通訊 - 跨層通訊React元件
- Flutter與android之間的通訊FlutterAndroid
- Flink內部之間的通訊
- Flutter多Engine之間的通訊Flutter
- Javascript與Python之間的程序間通訊JavaScriptPython
- js訊息訂閱和釋出實現元件之間通訊JS元件
- vue工程利用pubsub-js實現兄弟元件之間的通訊VueJS元件
- Vue元件之間的資料傳遞(通訊、互動)詳解Vue元件
- react元件通訊通識篇React元件
- Vue 元件間的通訊Vue元件
- react之bind函式到元件通識篇React函式元件
- linux 程式間通訊之管道Linux
- linux 程式間通訊之FIFOLinux