美文网首页
React(脚手架)——create-react-app撸api

React(脚手架)——create-react-app撸api

作者: 感觉不错哦 | 来源:发表于2019-03-07 16:45 被阅读3次
新建一个组件News,并且只将他渲染到APP.js中
    import React,{Component} from 'react'
    /*
        
    React中的组件:解决html 标签构建应用的不足
            好处:把公共的功能单独抽离成一个文件,哪里使用哪里引入

            父子组件:组件的相互调用中,调用者称之为父组件,被调用者称之为子组件 比如我在Home.js组件中引入New组件,则Home就是父组件

            父传子:
                1.在调用子组件的时候定义一个属性 

                2.子组件里面this.props.msg
                父组件不仅可以给子组件传值,还可以给子组件传方法,以及把整个父组件传给子组件

            父组件主动获取子组件数据   
                1、调用子组件的时候指定ref的值     
            
                2、通过this.refs.header  获取整个子组件实例  (dom(组件)加载完成以后获取 )


    */ 
    class News extends Component {
        constructor(props) {
            super(props);
            this.state = {  };
        }
        render() {
            return (
                <div>

                </div>
            );
        }
    }

    export default News;

注释看不看无所谓,我们一步步来,父子组件应该很容易区分,这个不多讲

新建一个子组件Header,引入到News父组件中,然后引入

双标签还是单标签看自己习惯,问题不大

在父组件中给予Header模板写了一个属性,子组件就可以通过这个属性接收到值

OK,这是最简单的传值。除了传值还能传递方法


同样我们编写一个方法,并在组件中使用属性传递过去

父组件还可以将自己全部传给子组件,传递this即可

需要注意的就是方法,此时的写法是变量也就是函数表达式不是函数体,不然没法调用,当然这个问题不大

那么此时 this.props.gob就代表了父组件实例,然后调用内部的状态方法即可

父组件获取子组件数据,依旧是这样写法

在父组件中声明一个函数表达式,result用来接收子组件的数据


然后在子组件中使用bind方法传递数据


子组件也可以将自己全部给父组件,再编辑一个子组件
引入子组件footer 在父组件中的 getFoot()方法使用this.refs.footer获取子组件所有数据!
    import React,{Component} from 'react'
    import Header from './Header'
    import Foot from './Footer'
    /*
        
    React中的组件:解决html 标签构建应用的不足
            好处:把公共的功能单独抽离成一个文件,哪里使用哪里引入

            父子组件:组件的相互调用中,调用者称之为父组件,被调用者称之为子组件 比如我在Home.js组件中引入New组件,则Home就是父组件

            父传子:
                1.在调用子组件的时候定义一个属性

                2.子组件里面this.props.msg
                父组件不仅可以给子组件传值,还可以给子组件传方法,以及把整个父组件传给子组件

            父组件主动获取子组件数据   
                1、调用子组件的时候指定ref的值     
            
                2、通过this.refs.** 获取整个子组件实例  (dom(组件)加载完成以后获取 )


    */ 
    class News extends Component {
        constructor(props) {
            super(props);
            this.state = { 
                'title':'News组件是我的父组件',
             };
        }
        handelClick=()=>{
            
           alert('我是父组件的方法')
        }

        getChild=(result)=>{
             
            alert(result)

        }

        getFoot(){
            this.refs.footer.run();
        }
        render() {
            return (
                <div>  
                      <h2>我是父组件</h2>
                       <button onClick={this.getFoot.bind(this)}>获取footer组件的方法</button>
                       <hr/>
                      <Header title={this.state.title}  fun={this.handelClick.bind(this)} gob={this} />
                      <hr/>
                      <Foot ref="footer" />
                </div>
            );
        }
    }

    export default News;

基本用法还是很简单的,没有vue那么复杂

相关文章

网友评论

      本文标题:React(脚手架)——create-react-app撸api

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