前端那些事之react篇--子父组件传递

react的子父组件传递参数

父组件在state的状态下设置

getinitialState(){
      return{
          childNameA:"小样,你好吗?",childNameB:'小样,我不好!!',item:[
          ],time:0
      }

子组件用props属性来接收

<p >子组件{this.props.name}</p>

完成的代码:父组件代码

import React from 'react';
import ReactDOM from 'react-dom';
import './commopent/childa/index';
import './index.css';
var ChildA=require('./commopent/childa/index'),ChildB=require('./commopent/childb/index')
var App=React.createClass({
    getinitialState(){
      return{
          childNameA:"小样,你好吗?",time:0
      }
    },render(){
        return(
            <div>
                <h3 className='app'>组件化开发</h3>
                <button onClick={this.plus}>{this.state.time}</button>
                <ChildA name={this.state.childNameA} plus={this.plus} time={this.state.time}/>
                <ChildB name={this.state.childNameB} items={this.state.item}/>
            </div>
        )
    },plus:function () {
       var plaus=this.state.time;
       plaus++;
       var items=this.state.item;
       items.push('user click')
       this.setState({
           time:plaus,item:items
       })
    }
})
ReactDOM.render(
    <App />,document.getElementById('root')
);

子组件A的代码

import React from 'react';
import './child1.css'
var ChildA=React.createClass({
    getinitialState(){
       return{
           name:'小样'
       }
    },render(){
        return(
            <div className='child'>
                <p >子组件{this.props.name}</p>
                <input type="text" value={this.state.name} onChange={this.change}/>
                {this.state.name}
                <button id="btn">原生事件</button>
                {/*<button onClick={this.hanldClick}>{this.state.times}</button>*/}
                <button onClick={this.props.plus}>{this.props.time}</button>
            </div>
        )
    },change:function (e) {
        this.setState({
            name:e.target.value
        })
    },// hanldClick:function () {
    //    var times=this.state.times;
    //    times++;
    //    this.setState({
    //        times:times
    //    })
    // },componentDidMount:function () {
        // var btn= document.querySelector("#btn");
        // btn.onclick=function () {
        //     alert("原生事件!!")
        // }
    }
})
module.exports=ChildA;

子组件B的代码

import React from 'react';
import './child.css'
var ChildB=React.createClass({
    render(){
        var value=this.props.items.map(function (o,i) {
            return(
                <li>{o}+{i}</li>
            )
        })
        return(
            <div className='child'>
                <p>子组件{this.props.name}</p>
                <ul>
                    {value}
                </ul>
            </div>
        )
    }
})
module.exports=ChildB

实现效果如下:

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...