React的三大属性

React系列 -- 三大属性 props  refs  state 

  * props 

          组件外部向组件内部传值用,标签属性都挂载在 props上

        步骤:      

             1.父组件调用子组件时传入属性

             2.

         (1) 子组件直接通过this.props.属性名   即可拿到父组件传过来的值   

        import React, { Component,Fragment} from 'react';

        //React的props传参

         // 父组件
        class App extends Component {
           render() {
             return (
               <Fragment>
                  <Child aaa="王一博"></Child>
               </Fragment>
          )
        }
      }

        // 子组件
        class Child extends Component{
            render(){
               return (
                  <div>{this.props.aaa}</div>
               )
         }
      }

      export default App;

    (2) 传函数  

                import React, { Component,Fragment} from 'react';             //React的props传参


             // 父组件
           class App extends Component {
             render() {
                return (
                  <Fragment>
                     <Child aaa="红牛" bbb={this.hanshu}></Child>
                  </Fragment>
            )
          }
          hanshu(){
               return  "我是父组件传过来的函数"
           }}

        // 子组件
        class Child extends Component{
           render(){
              return (
                 <div>{this.props.aaa}{this.props.bbb()}</div>
              )
           }
        }

     export default App;

* refs

Refs提供了一种允许我们访问DOM节点或在render方法中创建的React元素的方式。

    

            class MyComponent extends React.Component {
              handleClick() {
                     // 使用原生的 DOM API 获取焦点
                    this.refs.myInput.focus();
                 }
              render() {
                    // 当组件插入到 DOM 后,ref 属性添加一个组件的引用于到 this.refs
                       return (
                           <div>
                               <input type="text" ref="myInput" />
                               <input   type="button"   value="点我输入框获取焦点"     onClick={this.handleClick.bind(this)} />
                          </div>
                          );
                    }
                  }

             ReactDOM.render(
                 <MyComponent />,
                document.getElementById('example')
             );
   * state

 

猜你喜欢

转载自www.cnblogs.com/gdqx/p/11469688.html