美文网首页
react通信

react通信

作者: mapleLeaf_X | 来源:发表于2018-03-28 15:44 被阅读0次

通信的几种方式

一般来说,react里边有几种常用的方式:父到子,子到父,兄弟组件之间的通信。

===== 父向子通信 =====

  • 直接标签中插入参数即可
let _number = this.state.number
<Child number={_number} />

// 在子组件中就能直接通过this.props.number来调用父组件传的值

需要注意,_number 可以是普通参数、this.state.xxx 参数、也可以是this.props.xxx参数,其中this.state.xxx参数若发生改变,会导致 Child 重新渲染

===== 子向父通信 =====

  • 需要从 Parent 处接一个绑定了父组件的函数,然后在 Child 内部调用修改父的相关参数,达到效果
// 父组件在调用子组件的时候传递一个函数
turn(option) {
    this.setState({option:option})
}
let dotsNode1 = <SliderDots turn={this.turn.bind(this)}/>

// 子组件中调用this.props.turn(option)若父组件中存在turn则会将option传递给父组件,从而会调用父组件中的turn函数。
handleDotClick(count) {
    let option = count-this.props.nowPage;
    this.props.turn(option);
}

render() {
    return (
        <span 
            key={'dot'+index}
            onClick={this.handleDotClick.bind(this,index)}>
        </span>
    )
}

同样,可以修改父组件的 this.state.xxx( this.setState() 触发渲染),也可以修改this.xxx等值

===== 兄弟组件之间通信 =====

  • 需要从 Parent 处接一个绑定了父组件的函数,然后在 ChildOne 内部调用修改父的相关参数,再将参数传递给childTwo,达到效果。
// 在上述子传父的基础上,有一个dotNode2,在dotsNode2中绑定option,就能用了。
let dotsNode2 = <SliderDots option = {this.state.option}/>

同样,可以修改父组件的 this.state.xxx( this.setState() 触发渲染),也可以修改this.xxx等值.

实质上,改变其中一个兄弟组件的值,传递给父元素,再setState一下,组件就会重新渲染,在另外一个兄弟组件中的值就会发生变化,达到了兄弟组件之间值传递的效果。

具体的可以看看 轮播图评论 这两个小栗子。

===== 结论 =====

组件之间的通信说着比较容易,但是在实际上用的时候还是有点压力的,多用。

本文只初步的说明了组件之间的通信。针对于不复杂的程序还是够了,但是对于比较复杂的,通信需要用到redux。

相关文章

  • React Native 的组件通信方式

    React Native 的组件通信方式 React Native 的...

  • React native全局变量的使用(跨组件的通信)

    React native全局变量的使用(跨组件的通信) 标签(空格分隔): React React native全...

  • React组件间通信

    不借助redux等状态管理工具的React组件间的通信解决方法 组件通信分类 React组件间通信分为2大类,3种...

  • react通信

    通信的几种方式 一般来说,react里边有几种常用的方式:父到子,子到父,兄弟组件之间的通信。 ===== 父向子...

  • (1)React的开发

    1、React项目架构搭建2、JSX语法3、React组件化开发4、React组件间通信5、React中的事件6、...

  • react-native相互通信

    react-native的双向通信 demo项目下载 react->native RNNativeBridgeMo...

  • 总结

    React组件之间的通信方式 1.父组件向子组件通信 React数据流动是单向的,通过props传递 2.子组件向...

  • Redux 和 React-redux

    先来看看 React 一些特点和没有解决的问题: 通信:组件之间如何通信?react 采用传参,对于大应用,很不方...

  • React Native 架构之 Redux介绍

    React 在 React 中,UI 以组件的形式来搭建,组件之间可以嵌套组合。另,React 中组件间通信的数据...

  • 034_ReactNative: iOS Communicati

    Communication between native and React Native 原生与RN之间通信...

网友评论

      本文标题:react通信

      本文链接:https://www.haomeiwen.com/subject/hxxucftx.html