美文网首页
react基础知识

react基础知识

作者: guoss | 来源:发表于2017-07-12 10:42 被阅读0次

    ReactDOM.render将模板转换为HTML语言,并插入指定的DOM节点。

    <div id="example"></div>
    ReactDOM.render(
      <h1>hello</h1>,
      documnet.getElementById('example')
    );
    

    运行结果

    hello
    

    React.createClass将代码封装成组件的形式,生成组件类,需要注意return中只能包含一个顶层标签,组件名第一个字母要大写。

    <div id="progress"></div>
    <script type="text/babel">
      var Progress=React.createClass({
        render:function(){
          return <h1>Hello{this.props.name}</h1>
        }
      });
      ReactDOM.render(
        <Progress name="john" />
        documnet.getElementById("example")
      );
    <script>
    

    运行结果

    john
    

    this.props.children组件内的所有子节点,无节点undifine,一个节点object,多个节点array,在使用时加上React.children来处理,使用React.children.map遍历组件内的所有子节点

    <div id="example"></div>
    <script type="text/babel">
      var Progress=React.createClass({
        render:function(){
          return (
            <ol>{
             React.Children.map(this.props.children,function(child){
    return <li>{child}<li>
             })
            }</ol>
          );
        }
      });
      ReactDOM.render(
        <Progress>
          <span>hello</span>
          <span>everyone</span>
        </Progress>
      );
    </script>
    

    运行结果

    hello
    everyone
    

    propTypes验证别人所提供的组件是否符合要求,在component可以接收任意值包括数字、字符串函数等

    var data=123;
    var MyTitle=React.createClass({
      propTypes:{React.PropTypes.string.isRequired},//定义类型为字符串
      render:function(){
        <h1>{this.props.title}</h1>
      }
    });
    ReactDOM.render(
      <MyTitle  title={data} />,
      document.getElementById("example")
    );
    *------------------------------------*
    使用getDefaultProps设置初始化值
    var MyTitle=React.createClass({
      getDefaultProps:function(){
        return {
          title:'welcome'
        };
      },
      render:function(){
        <h1>{this.props.title}</h1>
      }
    });
    ReactDOM.render(
      <MyTitle />,
      document.getElementById("example")
    );
    

    运行结果:

    123
    welcome
    

    ref属性可以从component组件中获取真实的的DOM节点

    var MyComponent=React.createClass({
      handelClick:function(){
        this.refs.myTextInput.focus();
      },
      render:function(){
        return (
          <div>
            <input type="text" refs="myTextInput"/>
            <input type="button" value="focus" onClick={this.handelClick}/>
        </div>
        ) ; 
      }
    });
    ReactDOM.render(
      <MyComponent />,
      document.getElementById("example");
    )
    

    运行结果:


    Paste_Image.png

    相关文章

      网友评论

          本文标题:react基础知识

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