react通信有哪些方式

react通信方式有:1、用props进行父子组件通信;2、用回调函数进行子父组件通信;3、用变量提升进行兄弟组件通信;4、用Context进行跨组件通信;5、用node的events模块进行单例通信;6、用redux共享数据通信。

react通信有哪些方式

本教程操作环境:Windows7系统、react17.0.1版、Dell G3电脑。

React的六种通信方式

       1.props父子通信
       2.回调函数,子父通信
       3.变量提升,兄弟组件通信
       4.Context,跨组件通信
       5.node的events模块的单例通信
       6.redux共享数据通信

1.props父子通信

function Children(props) {      return (        
          

Children

          

{props.text}

        
      )    }    function Parent() {      return (        
          

Parent

                  
      )    }        export default Parent

登录后复制

2.回调函数,子父通信

function Children(props) {  return (    
      

Children

      

{props.text}

          
  )}function Parent() {  let [text, setText] = useState('这是爸爸传给你的东西')  function handleChange(val) {    setText(val)  }  return (    
      

Parent

          
  )}export default Parent

登录后复制

3.变量提升,兄弟组建通信

function Children(props) {  return (    
      

Children

          
  )}function Children1(props) {  return (    
      

Children1

      

{props.text}

    
  )}function App() {  let [text, setText] = useState('')  return (          
APP
                >  )}export default App

登录后复制

4.Context,跨组建通信

旧写法

class Children extends React.Component {  static contextTypes = {    text: PropsType.string  }  render() {    return (      
        

Children

        

{this.context.text}

      
    )  }}class Parent extends React.Component {  static childContextTypes = {    text: PropsType.string  }  getChildContext() {    return {      text: '我是爸爸的信息'    }  }  render() {    return (        
          

Parent

                  
    )  }}export default Parent

登录后复制

新写法

const { Consumer, Provider } = React.createContext()class Children extends React.Component {  render() {    return (              {          (value) => (            
              

Children1

              

{value.text}

            
          )        }          )  }}class Parent extends React.Component {  render() {    return (              
          

Parent

                  
          )  }}export default Parent

登录后复制

5.node的events模块的单例通信

function Children(props) {  return (    
      

Children

      

{props.text}

          
  )}function Parent() {  let [text, setText] = useState('这是爸爸传给你的东西')  let event = new Events()  event.on('foo', () => { setText('改变了') })  return (    
      

Parent

          
  )}export default Parent

登录后复制

注意⚠️:这种通信记住在顶部引入events模块,无需安装,node自身模块。

6.redux共享数据通信

store.js

import { createStore } from 'redux'let defaultState = {    text: '我是store'}let reducer = (state = defaultState, action) => {    switch (action) {        default: return state    }}export default createStore(reducer)

登录后复制

child.js

import React from 'react'import { connect } from 'react-redux'class Child extends React.Component {    render() {        return (            
Child

{this.props.text}

        )    }}let mapStataToProps = (state) => {    return {        text: state.text    }}export default connect(mapStataToProps, null)(Child)

登录后复制

Parent.js

class Parent extends React.Component {  render() {    return (              
          

Parent

                  
          )  }}export default Parent

登录后复制

注意:记得安装reduxreact-redux

【相关推荐:Redis视频教程】

以上就是react通信有哪些方式的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2935414.html

(0)
上一篇 2025年3月11日 20:51:54
下一篇 2025年3月3日 08:55:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react请求数据用什么钩子

    react请求数据用“componentDidMount”钩子。React的数据请求是在钩子函数componentDidMount()中进行的,该函数可以用来加载外部数据,或处理其他的副作用代码。 本教程操作环境:Windows7系统、re…

    2025年3月11日 编程技术
    200
  • react和webpack的区别是什么

    区别:1、React是一个JavaScript框架,而webpack是一个JavaScript应用程序的静态模块打包器;2、React主要用于构建用户界面,而webpack可以进行重新加载编译,可将所有的静态资源都合并,进而减少io请求。 …

    2025年3月11日
    200
  • react用什么管理状态

    react管理状态的工具:1、利用hooks进行状态管理;2、利用Redux进行状态管理,这种方式的配套工具比较齐全,可以自定义各种中间件;3、利用Mobx进行状态管理,它通过透明的函数响应式编程使得状态管理变得简单和可扩展。 本教程操作环…

    2025年3月11日
    200
  • react中使用hook的好处是什么

    react中使用hook的好处:1、简化逻辑复用,能更容易复用代码,Hook让开发者可以在无需修改组件结构的情况下复用状态逻辑;2、Hook能够让针对同一个业务逻辑的代码聚合在一块,让业务逻辑清晰地隔离开,让代码更加容易理解和维护。 本教程…

    2025年3月11日
    200
  • react高阶组件是什么意思

    在react中,高阶组件是一个函数,是用于重用组件逻辑的高级技术;高阶组件用于接受一个组件作为参数,返回一个新的组件,这个新的组件会使用传给它的组件作为子组件,可以用属性代理和反向继承两种方法来实现高阶组件。 本教程操作环境:Windows…

    2025年3月11日
    200
  • react中hook是什么

    在react中,hook是React16.8新增的特性,用于在不编写class的情况下使用state及其他的react特性;可以用函数组件去使用react中的一些特性,也可以让函数组件也拥有状态,通过自定义hook实现在组件间公用状态操作。…

    2025年3月11日
    200
  • react15与16版本的不同是什么

    不同:1、15版本架构分为协调器和渲染器两部分,而16版本架构分为调度器、协调器和渲染器三个部分;2、15版本的reconciler是采用递归形式工作是同步的,而16版本的reconciler采用的是异步可中断更新代替15版本的同步更新。 …

    2025年3月11日
    200
  • react单页面和多页面的区别是什么

    区别:1、多页面应用不同的URL返回不同的HTML,而单页面应用不同URL返回同一个HTML;2、多页面应用即使两个页面存在公共资源,这些公共资源会被清空重新下载,而单页面应用的这些公共资源不会被重复下载。 本教程操作环境:Windows1…

    2025年3月11日
    200
  • react中key的用法是什么

    在react中,key用于识别组件,可在DOM中的某些元素被增加或删除时识别哪些元素发生了变化,是一种身份标识;可以根据key来决定是销毁还是更新组件,若key相同,组件有变化就只更新组件相应的属性,若key不同,会销毁之前的组件重新渲染。…

    2025年3月11日
    200
  • react怎么关闭eslint

    方法:1、利用“npm run eject”复制所有依赖文件和相应的依赖到项目中;2、在“package.json”中修改“”eslintConfig””项目的代码;3、若缺少依赖,需要重新安装依赖,利用“npm s…

    2025年3月11日
    200

发表回复

登录后才能评论