当前位置: 首页 > news >正文

react 组件通信 —— 父子传值 【 函数式/类式 】

1、函数式组件通信

父子间通信 —— 父传子

 父组件

export default function father() {return (<div style={{width:'400px',height:'200px',background:'pink',marginLeft:'500px'}}>我是父组件<hr /><Son name={"韩小刀"}/></div>)
}

子组件

export default function son(props) {return (<div style={{width:'200px',height:'100px',background:'lightgreen'}}>我是子组件<hr />我接受到的父组件的值是:{props.name}</div>)
}

如下图所示:

 父子间通信 —— 子传父

父组件

export default function father() {// 父组件的数据const [data,setData] = useState('')// 父组件传给子组件的方法const onMessageChange = (message) => {setData(message)}return (<div style={{width:'400px',height:'200px',background:'pink',marginLeft:'500px'}}>我是父组件<div>接收子组件的数据:{data}</div><hr /><B sendMessageData={onMessageChange}/></div>)
}

 子组件

export default function son({sendMessageData}) {//子组件操作 给父组件传数据const handleData=()=>{sendMessageData('韩小刀')}return (<div style={{ width: "200px", height: "100px", background: "lightgreen" }}>我是子组件<hr /><button onClick={handleData} >点我给父组件传数据</button></div>);
}

 如下图所示:

 2、类式组件通信

父子间通信 —— 父传子

 父组件

export default class Father extends Component {//父组件的状态数据state = {name:'韩小刀'}render() {return (<div style={{width:'400px',height:'200px',background:'pink',marginLeft:'500px'}}>我是父组件<hr /><Son changeDataMessage={this.state.name}/></div>)}
}

  子组件

export default class Son extends Component {render() {//接收到父组件的数据const {changeDataMessage} = this.propsreturn (<div style={{ width: "200px", height: "100px", background: "lightgreen" }}>我是子组件<hr />接收到的数据:{changeDataMessage}</div>);}
}

 如下图所示:

 父子间通信 —— 子传父

  父组件


export default class Father extends Component {//state写法一// constructor(props) {//   super(props);//   // 初始化状态//   this.state = {//     childMessage: "",//   };// }//state写法二state = {name: "",};changeDataMessage = (message) => {this.setState({ name: message });};render() {return (<div style={{width: "400px",height: "200px",background: "pink",marginLeft: "500px",}}>我是父组件 接收到子数据:{this.state.name}<hr /><B changeDataMessage={this.changeDataMessage} /></div>);}
}

  子组件

export default class Son extends Component {handleMessageData = () => { this.props.changeDataMessage('韩小刀')  }render() {return (<div style={{ width: "200px", height: "100px", background: "lightgreen" }}>我是子组件<hr /><button onClick={this.handleMessageData}>点我给父组件传数据</button> </div>);}
}

 如下图所示:

 

http://www.lryc.cn/news/400471.html

相关文章:

  • 【SpringBoot】95、SpringBoot中使用MyBatis-Plus实现自动加密存储和查询自动解密
  • [数仓]十二、离线数仓(Atlas元数据管理)
  • 机器学习——决策树(笔记)
  • 翁恺-C语言程序设计-08-1. 求一批整数中出现最多的个位数字
  • ROM修改进阶教程------深度解析小米设备锁机型不解锁bl 刷写特殊类固件的步骤
  • 论文翻译 | LEAST-TO-MOST: 从最少到最多的提示使大型语言模型中的复杂推理成为可能
  • 【区块链 + 智慧政务】都江堰区块链公共服务应用平台 | FISCO BCOS应用案例
  • Python从0到100(三十九):数据提取之正则(文末免费送书)
  • redis redisson(仅供自己参考)
  • 【C语言初阶】探索编程基础:深入理解分支与循环语句的奥秘
  • ERP基础知识
  • C++是否可以使用.获取union、struct中的成员变量的地址
  • 【前端】包管理器:npm、Yarn 和 pnpm 的全面比较
  • C++ 类和对象 赋值运算符重载
  • 【Python实战因果推断】35_双重差分6
  • 【HarmonyOS】关于官方推荐的组件级路由Navigation的心得体会
  • Spring中事件监听器
  • 案例|LabVIEW连接S7-1200PLC
  • 正点原子STM32(基于HAL库)6
  • flutter Android端权限
  • ant design form动态增减表单项Form.List如何进行动态校验规则
  • 7.16做题总结
  • unity使用 MQTT复现plant simulate仿真
  • MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制
  • 初识HTML
  • 基于Rspack实现大仓应用构建提效实践|得物技术
  • 什么是MOW,以bitget钱包为例
  • pytorch说明
  • AI语音机器人是否可以设计开放式问题
  • ModuleNotFoundError: No module named