子组件监听父组件消息,随之变化与不变化

父组件通过props传递给子组件消息,子组件有两种情况接收处理:

1、子组件监听父组件props的变化,同时随之变化【可以直接取props中的值展示,也可以监听值得变化处理】

2、子组件初始化时更新,随后不再随父组件变化

示例:父组件代码:

javascript 复制代码
import React, { useEffect, useState } from "react";
import ChildModal from "./components/childModal";
import "./index.less";
 
function App() {
    const [sum, setSum] = useState(0);

    const addSum = () => {
        setSum(sum + 1);
    }

    return (
        <>
            <div>当前数量为:{sum}</div>
            <div className="container" onClick={addSum}>点击加1</div>
            <ChildModal sum={sum} />
        </>
    );
}

// 导出App组件
export default App;

第一种情况示例【子组件监听父组件props的变化,同时随之变化】子组件代码:

可以直接取props中的值展示,也可以监听值得变化处理

a、【直接取props中的值】展示代码如下:

javascript 复制代码
import React from "react";

const ChildModal = (props) => {
    console.log('props', props);

    return (
        <div>子组件的数量:{props.sum}</div>
    )
}
export default ChildModal;

b、【监听props值得变化】展示代码如下:

javascript 复制代码
import React, { useEffect, useState } from "react";

const ChildModal = (props) => {
    console.log('props', props);
    const [sum, setSum] = useState(-1);

    useEffect(() => {
        setSum(props.sum);
    }, [props.sum])

    return (
        <div>子组件的数量:{sum}</div>
    )
}
export default ChildModal;

效果图:

第二种情况示例【子组件初始化时更新,随后不再随父组件变化】子组件代码:

javascript 复制代码
import React, { useEffect, useState } from "react";

const ChildModal = (props) => {
    console.log('props', props);
    const [sum, setSum] = useState(-1);

    useEffect(() => {
        setSum(props.sum);
    }, [])

    return (
        <div>{sum}</div>
    )
}
export default ChildModal;

效果图:

相关推荐
NickJiangDev2 分钟前
Elpis Schema 动态组件与表单:配置驱动的完整 CRUD 闭环
前端
kerli5 分钟前
Compose 组件:Box 核心参数及其 Bias 算法
android·前端
luckyCover5 分钟前
TypeScript学习系列(二):高级类型篇
前端·typescript
NickJiangDev6 分钟前
Elpis NPM 发布:把框架从业务中剥离出来
前端
comerzhang6557 分钟前
手撕 V8:我是如何用 2.67ms 的心跳活捉 700ms 冻结幽灵的
javascript
im_AMBER8 分钟前
手撕发布订阅与观察者模式:从原理到实践
前端·javascript·面试
九英里路10 分钟前
cpp容器——string模拟实现
java·前端·数据结构·c++·算法·容器·字符串
Justin3go15 分钟前
丢掉沉重的记忆:Codex、Claude Code 与 OpenCode 的上下文压缩术
前端·后端·架构
JokerLee...17 分钟前
大屏自适应方案
前端·vue.js·大屏端
花千树-01031 分钟前
MCP + Function Calling:让模型自主驱动工具链完成多步推理
java·agent·react·mcp·toolcall·harness·j-langchain