react-11-父子组件通信-调试工具

简介: 框架类的都少不了 组件间的传值父子组件 兄弟组件等先来梳理个 父 改子

1. 前言


框架类的都少不了 组件间的传值

父子组件  兄弟组件等

先来梳理个 父 改子


2.  需求


点击 父组件内的按钮 ,修改数据,子组件跟随变化

点击子组件内的按键 ,父组件数据也修改

FT~`UNXH`J3EF)J@ISX_$U8.png

极简插件  很多浏览器的调试插件安装比较麻烦,这个安装起来非常方便,需要的可以试试


3.  父传子 -----子组件


类组件用的比较多

构造函数不是必须的


class Child extends React.Component {
            render() {
                return (<div>
                    <h2>  子-child---{this.props.num} </h2>
               </div> )
            }
        }



4. 父组件-传值-子组件


  1. state  定义一个 变量
  2. 父传子  和 vue类似 通过 属性传值
  3. 父组件 点击事件 箭头函数 里面 修改  state
  4. this的问题 以后就默认你懂了,不在详细讲解
  5. setState()修改 数据  和小程序 类似


class App extends React.Component {
            constructor(){
                super();
                this.state={
                    app_num:0
                }
            }
            render(){
                return(
                    <div>
                    <h1> App </h1>  
                    <button onClick={()=>{this.increase()}}>父-app-btn </button>
                    <Child  num={this.state.app_num}/>  
                    </div>
                )
            }
            increase(){
                this.setState({
                    app_num: this.state.app_num +1
                })
            }
        }



5. 子组件 修改父组件数据 --子组件


直接在上边 的子组件 基础上 进行修改就行

就加了一个点击事件

其实这个思路和 vue是一样的, 通过回调函数来修改

因为子组件不能修改 父组件的数据 ,那就只能通过   传值的时候,把父组件的修改函数 像普通传参一样传过来

js里面本身函数也是一种数据类型嘛

可以想象 这个add 应该就是 父组件的修改函数


class Child extends React.Component {
            render() {
                return (<div>
                    <h2> 子-- child---{this.props.num} </h2>
                    <button onClick={this.props.add}> 子--- child-btn</button>
               </div> )
            }
        }



6. 父组件


在上边的 父组件基础上进行修改就行

主要 问题还是 this指向 ,怎么才 能在 子组件里面 还让 this指向父组件,

因为这个 修改函数 只有在父组件的this上才有

传值的时候通过 bind 直接绑定 this


render(){
                return(
                    <div>
                    <h1> App </h1>  
                    <button onClick={()=>{this.increase()}}>父--app-btn </button>
                    {/* props传递
                         父组件的 修改函数 作为参数 传给子组件 
                     只有保证this指向父组件,那么子组件修改的就是父组件的数据
                      vue是通过事件 传递
                    */}
                    <Child  num={this.state.app_num} add={this.increase.bind(this)}/>  
                    </div>
                )
            }




相关文章
|
8月前
|
前端开发 API
react怎么实现父子组件传值?
react怎么实现父子组件传值?
36 1
|
4月前
|
消息中间件 前端开发
React技术栈-组件间通信的2种方式
本文介绍了React技术栈中组件间通信的两种方式:通过props传递数据和使用消息发布(publish)-订阅(subscribe)机制,并通过实例代码展示了如何使用PubSubJS库实现跨组件通信。
64 11
React技术栈-组件间通信的2种方式
|
4月前
|
存储 前端开发 JavaScript
React非父子组件之间的事件传递
本文介绍了在React中非父子组件之间如何通过事件总线(eventBus)实现事件传递。
37 0
|
6月前
|
前端开发 JavaScript 开发者
react18【系列实用教程】组件 (2024最新版 | 含父子组件传值、兄弟组件传值、越层组件传值、“插槽“)
react18【系列实用教程】组件 (2024最新版 | 含父子组件传值、兄弟组件传值、越层组件传值、“插槽“)
97 2
|
7月前
|
存储 前端开发 JavaScript
在React中有效地管理组件之间的通信和数据流
在React中有效地管理组件之间的通信和数据流
|
8月前
|
存储 前端开发 中间件
React组件间的通信
React组件间的通信
63 1
|
8月前
|
前端开发
React组件通信:如何优雅地实现组件间的数据传递
React组件通信:如何优雅地实现组件间的数据传递
215 0
|
8月前
|
前端开发
React中兄弟组件通信和组件跨级传递Context的使用
React中兄弟组件通信和组件跨级传递Context的使用
|
8月前
|
前端开发
react怎么实现父子组件传值
react怎么实现父子组件传值
|
8月前
|
JavaScript 前端开发 小程序
Vue、React和小程序中的组件通信:父传子和子传父的应用
Vue、React和小程序中的组件通信:父传子和子传父的应用
91 0