React数据通信父传子和子传父的使用
2022-06-05 15:49
4023 查看
组件中的props
在react中,props的特点是: 1.可以给组件传递任意类型的数据 2.props是只读的对象,只能够读取属性的值,无法修改对象 如过我们强行修改数据,会报错,告诉我们该属性是只读属性。 ps:在类组件中,如果写了构造函数,应该将props传递给super(). 否则无法在构造函数中获取到props
函数组件-父传子
子组件.js const FunCom = (props) => { return ( <div> <h2>我是函数组件</h2> <p>我叫{ props.name}</p> </div> ) } export default FunCom
页面使用 import React from 'react'; import ReactDOM from 'react-dom'; <!-- 引入 --> import FunCom from './components/FunCom' ReactDOM.render(<FunCom name="李大为"/>, document.getElementById('root'))
类组件-父传子
子组件 import React from "react"; class FunCom extends React.Component{ render() { return ( <div> <h2>我是函数组件</h2> <p>我叫{ this.props.name}</p> </div> ) } } export default FunCom
页面使用 import React from 'react'; import ReactDOM from 'react-dom'; <!-- 引入 --> import FunCom from './components/FunCom' ReactDOM.render(<FunCom name="李大为"/>, document.getElementById('root'))
函数组件与类组件接收参数的区别
函数组件接受参数直接是:props.xxx 类组件接受参数直接是: this.props.xxx
组件可以传递那些值?
可以传递:可以传递数字, xxx={19} html,函数等等.... 详细代码如下 父组件 import React from 'react'; //这个是react这个包,我们是需要的 import ReactDOM from 'react-dom'; //这个是react的虚拟dom import FunCom from './components/FunCom' ReactDOM.render(<FunCom name="李大为" age={19} fn={() => { console.log('我被出发了')}} tag={<h2>我是H2</h2>} />, document.getElementById('root'))
子组件 import React from "react"; class FunCom extends React.Component{ render() { console.log(this.props) return ( <div> <h2>我是函数组件</h2> <p>我叫{this.props.name}</p> { this.props.tag} </div> ) } } export default FunCom
子组件传递数据父组件
1.父组件提供一个回调函数(用于接受数据) 2.将该函数作为属性的值,传递给子组件
儿子组件 import React from "react"; class FunCom extends React.Component{ state = { msg:'儿子给父亲的数据' } // 将数据传递给父组件 giveFtaher = () => { this.props.giveChildren(this.state.msg) } render() { return ( <div> <p>我是函数组件</p> <button onClick={this.giveFtaher}>给父组件</button> </div> ) } } export default FunCom
父组件 import React from 'react'; //这个是react这个包,我们是需要的 import ReactDOM from 'react-dom'; //这个是react的虚拟dom import FunCom from './components/FunCom' class PartentHello extends React.Component { // 当点击按钮的收,子组件会触发这个方法 getMsg = (data) => { console.log('接收到子组件的数据',data) } render() { return ( <div> <p>我是主页面</p> <FunCom giveChildren={ this.getMsg}></FunCom> </div> ) } } ReactDOM.render(<PartentHello></PartentHello>,document.getElementById('root'))
相关文章推荐
- React中受控组件与非受控组件的使用
- React类组件中事件绑定this指向的三种方式
- (十一)React Ant Design Pro + .Net5 WebApi:后端环境搭建-IdentityServer4(三)持久化
- react实战 系列
- (十)React Ant Design Pro + .Net5 WebApi:后端环境搭建-IdentityServer4(二)授权模式
- 七天接手react项目 系列 —— 尾篇(antd 和 mobx)
- 七天接手react项目 系列 —— react 路由
- (九)React Ant Design Pro + .Net5 WebApi:后端环境搭建-IdentityServer4(一)简单配置
- 七天接手react项目 系列
- Microsoft reactor Shanghai China .NET 20 anniversary.
- (八)React Ant Design Pro + .Net5 WebApi:后端环境搭建-Aop
- 七天接手react项目 系列 —— state&事件处理&ref
- (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理
- Microsoft reactor Shanghai China Mid-Autumn Festival MVP Party
- (六)React Ant Design Pro + .Net5 WebApi:后端环境搭建-EF Core
- react 也就这么回事 04 —— 元素渲染
- react 也就这么回事 03 —— JSX 的注意点
- react 也就这么回事 02 —— JSX 插值表达式、条件渲染以及列表渲染
- react 也就这么回事 01 —— React 元素的创建和渲染
- React Hooks 指北