日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

React组件通信--props

發布時間:2024/10/12 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 React组件通信--props 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

React組件通信

1、props接收數據

//index.js import App from "./App";ReactDOM.render(<App name='傳遞數據' age={19}color={[1,2,3]}fn={()=>{console.log('函數')}}tag={<p>段落</p>}/>,document.getElementById("root") );

第一種方式:函數組件props通過參數接收

//app.js function App(props) {function myClick(e) {console.log(props);}return (<div className="App"><button onClick={myClick}>按鈕</button></div>); } export default App;

第二種方式:類組件通過this.props.直接訪問

class App extends React.Component {render() {return (<div><span>props: {this.props.name}</span></div>);} } export default App;

特點:

  • 可以給組件傳遞任意類型的數據
  • props是只讀的對象,只能讀取屬性的值,無法修改對象
  • 使用類組件時,如果寫了構造函數,應該將props傳遞給super(),否則,無法在構造函數中獲取props
  • class Hello extends React.Component {constructor(props){super(props)console.log(props)}render(return(<div></div>)) }

    2、父傳子

    使用props:

    //父組件 import Children from "./Children";class App extends React.Component {state = {data: "父組件state數據",};render() {return (<div><span>props: {this.props.age}</span><div style={{ color: "red", border: "1px solid #f00" }}>子組件:<Children data={this.state.data} /></div></div>);} } export default App; //子組件 import React from "react";class Children extends React.Component {render() {return (<div><h3> childrens </h3><p>數據:{this.props.data}</p></div>);} }export default Children;

    3、子傳父

    利用回調函數,父組件提供回調,子組件調用

    //父組件 import Children from "./Children"; class App extends React.Component {state = {data: "父組件state數據",data2: "",};getChildData = (val) => {console.log("val", val);this.setState({data2: val,});};render() {return (<div><span>props: {this.props.age}</span><div style={{ color: "red", border: "1px solid #f00" }}>子組件:<Children data={this.state.data} getChildData={this.getChildData} />子組件數據:{this.state.data2}</div></div>);} }export default App; //子組件 class Children extends React.Component {sendData = () => {this.props.getChildData("子組件傳遞數據");};render() {return (<div><h3> childrens </h3><p onClick={this.sendData}>數據:{this.props.data}</p></div>);} }export default Children;

    4、兄弟組件傳值

    用父級做中間件,子傳父,父再傳子

    //children1 import React from "react";class Children extends React.Component {sendData = () => {this.props.getChildData("子組件傳遞數據");};render() {return (<div><h3> childrens </h3><p onClick={this.sendData}>點擊children1</p>數據:{this.props.data}</div>);} }export default Children; //Children2 import React from "react"; class Children2 extends React.Component {render() {return (<div>顯示兄弟children組件的數據:{this.props.data}</div>);} }export default Children2; //App 父組件 import Children from "./Children"; import Children2 from "./Children2"; class App extends React.Component {state = {data: "父組件state數據",data2: "",};getChildData = (val) => {console.log("val", val);this.setState({data2: val,});};render() {return (<div><span>props: {this.props.age}</span><div style={{ color: "red", border: "1px solid #f00" }}>子組件:<Children data={this.state.data} getChildData={this.getChildData} />父組件顯示子組件數據:{this.state.data2}子組件2<Children2 data={this.state.data2} /></div></div>);} }export default App;

    其實都是用了props

    5.children屬性

    • children屬性:表示組件標簽的子節點,當組件標簽有子節點時,props就會有該屬性。
    • 與props屬性一樣,值可以是任意值(文本、dom、甚至函數)
    function Hello(props) {return {<div>組件是子節點:{props.children}</div>} }<Hello> 我是子節點 </Hello>

    6.props深入

  • 安裝prop-type(npm i prop-types)
  • 導入prop-type包
  • 使用 組件名.propType = {} 來給組件的props添加校驗規則
  • import PropTypes from 'prop-types' function App(props){return {<h1>Hi, {props.colors}</h1>} } App.proptypes = {//約束colors屬性為arrray類型colors: Proptypes.array//類型有: array、bool、func、number、object、string、element }
  • 必填:(.isRequired)
  • requireFunc: PropTypes.func.isRequired
  • 指定特定結構的對象:(shape({ }))
  • oprionalObjectWithShape: PropType.shape({color: PropType.string,fontSize: PropsTypes.number }) 與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的React组件通信--props的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 男人的天堂在线视频 | 日韩大片在线免费观看 | 女女同性被吸乳羞羞 | 人人爽在线 | 亚洲小说区图片区都市 | 亚洲天堂一二三 | 欧美熟妇交换久久久久久分类 | 富婆如狼似虎找黑人老外 | 91天堂在线视频 | 日日操夜夜干 | 日韩精品aaa| 大地资源二中文在线影视免费观看 | 中国大陆一级毛片 | 国产色中色 | 美女扒开腿让男生捅 | 欧美爱爱网 | 精品国产乱码久久久久久1区二区 | 亚洲熟妇无码久久精品 | 成人午夜影片 | 国产伦理久久精品久久久久 | av解说在线| 精品欧美一区二区久久久久 | 午夜不卡视频 | 欧美少妇一区二区 | 欧美99久久精品乱码影视 | 色窝窝无码一区二区三区 | 色综合中文 | 九九久久网 | 美丽的小蜜桃2:美丽人生 | 欧美视频免费看欧美视频 | 永久免费在线观看视频 | 欧洲久久久久久 | 中文字幕一区二区久久人妻 | 天天射夜夜撸 | 牛牛超碰 | 最近日韩中文字幕中文 | 一区欧美 | 亚欧洲精品在线视频免费观看 | 69社| 91视频网址入口 | 国产三级麻豆 | 久久久久人妻精品色欧美 | 国产a免费 | 欧美色图另类 | 久久成人av | 91成人精品国产刺激国语对白 | 色综合影视 | 亚洲精品无码久久久久久久 | 亚洲综合免费视频 | 日韩日韩| 星空大象在线观看免费播放 | 北岛玲一区二区 | 国内精品视频在线观看 | 黄色在线网 | 不卡一二区 | www.国产.com| 麻豆69xxnxxporn| 欧洲熟妇精品视频 | 人妻互换一二三区激情视频 | 天堂国产在线 | 国产高清免费在线 | 成人午夜毛片 | 最全aⅴ番号库 | 欧洲一区二区三区在线 | 亚洲精品视屏 | 欧美黑人精品 | 天天干天天摸天天操 | 91原创视频在线观看 | 91精品国产高潮对白 | 日日摸天天爽天天爽视频 | 97视频在线免费观看 | 欧美色老头old∨ideo | 人妻巨大乳hd免费看 | 级毛片 | 91看片免费看 | 国产欧美日韩在线视频 | 亚洲一区精品在线观看 | 办公室大战高跟丝袜秘书经理ol | 夜夜爽妓女8888视频免费观看 | 国产精品天美传媒 | 五月开心激情 | 第一福利丝瓜av导航 | 久久国产精品无码一级毛片 | 国产欧美一区二区在线 | 黄色片毛片 | 亚洲av无码一区东京热久久 | 免费国产a级片 | 日韩操比 | 综合网伊人 | 毛片高清免费 | 69超碰 | 欧美疯狂做受xxxxx高潮 | 一级黄大片 | 亚洲天堂av免费在线观看 | 鲁一鲁在线视频 | 国内偷拍一区二区 | 欧美成人精品一区二区 | 亚洲精品久久久久久久蜜桃臀 | 永久黄网站色视频免费观看w |