前端开发笔记 | React Hooks子组件和父组件交互

这篇具有很好参考价值的文章主要介绍了前端开发笔记 | React Hooks子组件和父组件交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端开发框架目前比较常用的就是react、vue等,其中使用React Hooks 带来了不少的好处,今天来聊聊React Hooks开发方式下,子组件和父组件的交互。

父组件调用子组件

子组件定义

import React from "react";

type Props = {
  btnText: string;
  onClick: () => void;
};

const Sub = (props: Props) => {
  const { btnText, onClick } = props;
  return (
    <div>
      <button onClick={onClick}>{btnText}</button>
    </div>
  );
};

export default Sub;

父组件调用子组件

import React, { useCallback, useState } from "react";
import Sub from "./sub";

const Parent = () => {
  const [btnText, setBtnText] = useState("测试");

  const changeBtnText = useCallback(() => {
    setBtnText("改变按钮文案");
  }, []);
  return (
    <div>
      <Sub btnText={btnText} onClick={changeBtnText} />
    </div>
  );
};

export default Parent;

子组件改变父组件

父组件定义

import React, { useCallback, useState } from "react";
import Sub from "./sub";

const Parent = () => {
  const [btnText, setBtnText] = useState("测试");

  const changeBtnText = useCallback((value: string) => {
    setBtnText(value);
  }, []);
  return (
    <div>
      <button>{btnText}</button>
      <Sub changeBtnText={changeBtnText} />
    </div>
  );
};

export default Parent;

子组件中刷新父组件按钮文案

import React from "react";

type Props = {
  changeBtnText: (value: string) => void;
};

const Sub = (props: Props) => {
  const { changeBtnText } = props;

  return (
    <div>
      <button
        onClick={() => {
          console.log("改变父组件按钮");
          changeBtnText("改变按钮文案");
        }}
      >
        改变父组件按钮
      </button>
    </div>
  );
};

export default Sub;

实际效果:点击子组件中“改变父组件按钮”,父组件中按钮的文案从“测试”变成了“改变按钮文案“,同时在Console中输出”改变父组件按钮“,成功在子组件中刷新了父组件按钮文案。


这就是使用React Hooks开发方式下,子组件和父组件的交互,非常简单易懂,React Hooks确实是很好用呢,大大方便了前端开发。文章来源地址https://www.toymoban.com/news/detail-505836.html

到了这里,关于前端开发笔记 | React Hooks子组件和父组件交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端知识】React 基础巩固(十九)——组件化开发(三)

    Main.jsx TabControl/index.jsx TabControl/style.css

    2024年02月13日
    浏览(40)
  • 【前端知识】React 基础巩固(十七)——组件化开发(一)

    什么是组件化开发? 分而治之的思想 将一个页面拆分成一个个小的功能块 将应用抽象成一颗组件树 React的组件相对于Vue更加的灵活和多样 按照不同的方式可以分为很多类组件 根据 组件的定义方式 ,分为: 函数组件 、 类组件 根据 组件内部是否有状态需要维护 ,分为:

    2024年02月12日
    浏览(57)
  • react18 hooks自定义移动端Popup弹窗组件RcPop

    基于 React18 Hooks 实现手机端弹框组件 RcPop react-popup 基于 react18+hook 自定义多功能弹框组件。整合了 msg/alert/dialog/toast及android/ios 弹窗效果。支持 20+ 自定义参数、 组件式+函数式 调用方式,全方位满足各种弹窗场景需求。 在需要使用弹窗的页面引入组件。 RcPop支持  组件式+函

    2024年02月15日
    浏览(31)
  • React hooks文档笔记(四) useRef

    当想让组件记住一些信息,又不想触发新的渲染,可以使用ref:总是返回同一个对象。 1. state 和 refs 的比较 refs(普通的 JavaScript 对象) state 更改时 不触发重新渲染 更改时 触发重新渲染 可变的——修改/更新 current ’s value (修改完立即生效  ref.current = 5;    console.log(ref

    2024年02月12日
    浏览(30)
  • 【前端知识】React 基础巩固(四十四)——其他Hooks(useContext、useReducer、useCallback)

    在类组件开发时,我们通过 类名.contextType = MyContext 的方式,在类中获取context,多个Context或者在函数式组件中通过 MyContext.Consumer 方式共享context: 可以看到,当我们需要使用多个Context时,存在大量繁琐的嵌套代码;而Context Hook能够让我们通过Hook直接获取某个Context的值,如

    2024年02月14日
    浏览(37)
  • Hooks:尽享React特性 ,重塑开发体验

    🎼 React 16.8 版本引入了 Hooks ,可以在不使用 Class 的情况下使用 React 特性。 Hooks 允许从函数组件 “hook into” React 状态和生命周期特性。 为什么引入 Hooks ? 一个新的方案引入,一定是为了解决现存的问题。对于 Hooks 来说,就是为解决 Class 的诟病。 组件之间复用状态逻辑异

    2024年04月11日
    浏览(22)
  • 前端基本功 用 React Hooks + Antd 实现一个 Todo-List

    To-do list(待办事项列表)是用来记录和管理要完成的任务、活动或项目的列表。它是一种简单而常见的工具,用于帮助人们组织和安排日常生活中的任务。每当您有一项任务需要完成或者要记住某些事情时,您可以将它添加到待办事项列表中。 学习前端的一些新知识时,经

    2024年02月17日
    浏览(26)
  • 前端工程化实战:React 模块化开发、性能优化和组件化实践

    前端工程化实战是指通过组织工作流程、使用工具和技术来提高前端开发效率和质量的一种方法。常见的前端工程化实践包括模块化开发、自动化构建、代码检查和测试、性能优化等。下面将简要介绍模块化开发、性能优化和组件化实践。 模块化开发 在 React 中实现模块化开

    2023年04月10日
    浏览(45)
  • React hooks文档笔记(五)useEffect——解决异步操作竞争问题

    非bug,重新安装组件仅在开发过程中发生,帮助找到需要清理的效果。在生产环境中只会加载一次。 React 将在 Effect 下次运行之前以及卸载期间调用您的清理函数。 return () = {}; 在开发中, Effect call addEventListener() ,然后立即call removeEventListener() ,然后再次cal laddEventListener()

    2024年02月11日
    浏览(35)
  • 元宇宙应用开发实例——以太坊里的智能合约和Decentraland里的3D前端交互组件

    腾讯最近发布了一个全真互联白皮书,虽然他们强调 全真互联 跟 元宇宙 不同,但怎么看都像是无奈之下的牵强附会。从核心技术上来看,其实 元宇宙 、 Web3.0 和这个 全真互联 都是一回事儿,都是前端和后端两方面技术发展的产物: 随着前端交互技术(既包括 软件渲染技

    2024年02月06日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包