当前位置:首页 > JavaScript

js实现父子传值

2026-01-31 02:55:25JavaScript

父子组件传值(父传子)

在React中,父组件向子组件传递数据通常通过props实现。父组件在调用子组件时通过属性传递数据,子组件通过props接收。

父组件代码示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const data = "Hello from Parent";
  return (
    <div>
      <ChildComponent message={data} />
    </div>
  );
}

子组件代码示例:

function ChildComponent(props) {
  return <div>{props.message}</div>;
}

子父组件传值(子传父)

子组件向父组件传递数据需要通过回调函数。父组件定义一个函数并通过props传递给子组件,子组件调用该函数并传入参数。

父组件代码示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const handleData = (data) => {
    console.log(data);
  };

  return (
    <div>
      <ChildComponent onData={handleData} />
    </div>
  );
}

子组件代码示例:

js实现父子传值

function ChildComponent(props) {
  const sendData = () => {
    props.onData("Data from Child");
  };

  return (
    <button onClick={sendData}>Send Data</button>
  );
}

使用Context跨层级传值

对于深层嵌套的组件,可以使用React Context避免props逐层传递。

创建Context:

const MyContext = React.createContext();

父组件提供值:

js实现父子传值

function ParentComponent() {
  return (
    <MyContext.Provider value="Shared Data">
      <ChildComponent />
    </MyContext.Provider>
  );
}

子组件消费值:

function ChildComponent() {
  return (
    <MyContext.Consumer>
      {value => <div>{value}</div>}
    </MyContext.Consumer>
  );
}

使用Ref获取子组件实例

父组件可以通过ref获取子组件实例并直接调用其方法。

父组件代码示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const childRef = React.useRef();

  const handleClick = () => {
    childRef.current.childMethod();
  };

  return (
    <div>
      <ChildComponent ref={childRef} />
      <button onClick={handleClick}>Call Child Method</button>
    </div>
  );
}

子组件代码示例:

const ChildComponent = React.forwardRef((props, ref) => {
  React.useImperativeHandle(ref, () => ({
    childMethod: () => {
      console.log("Child method called");
    }
  }));

  return <div>Child Component</div>;
});

标签: 父子js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 //…

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…