zoukankan      html  css  js  c++  java
  • react学习总结(一)

           react框架是热门框架之一,现在通过代码学习react。

          react是JSX语法,JSX语法就是HTML语言可以直接写在javascript语言中,不加任何引号。JSX的基本语法规则就是遇到HTML标签,就用HTML规则解析,遇到代码块,就用用javascript规则解析。

            <1>ReactDOM.render()

             react最基本的方法是ReactDOM.render(),其主要作用就是将模版转化为HTML语言,并将其插入指定的DOM节点

            <2>插入数组变量

            JSX语法也允许在模版中直接插入js变量,这个变量可以数组,它会展开数组的所有成员,并且添加到模版中

             

         <3>React.createClass()

          react可以将代码封装成组件,然后将组件插入到网页中,React.createClass()就是用于生成一个组件类

         

          有几个注意的点:<1>type = "text/babel"

                                      <2>组件名称第一个字母是大写

                                      <3>每个组件都必须有render,主要是用于输出

                                       <4>组件只能包含一个顶层标签

                                       <5>组件可以添加属性

                                       <6>组件类可以通过this.props来获取组件的属性

                                       <7>class需要写成htmlClass,for需要写成htmlFor

         <4>this.props.children

               this.props可以获取组件的属性,而this.props.children获取到的是组件所有的子节点,不过要注意的是它的类型会根据子节点有多少个而不同,如果没有子节点,它的数据类型就是undefined,如果只有一个子节点,它的数据类型就是object,如果有多个子节点,它的数据类型就是array。所以可以运用React.Children.map来处理子节点,这样就不用担心它的数据类型了。

             

         <5>React.PropTypes

               组件的属性可以接收任意值,所以有的时候需要验证该属性的参数是否符合要求,React.PropTypes就是验证属性的参数是否符合要求

          

           <6>getDefaultProps

             通过getDefaultProps可以设置属性的默认值

           <7>ref

              ref是为了从组件获取真实DOM的节点,因为组件并不是真实的DOM节点,而是存在于内存中的一种数据结构,称为虚拟DOM

          <8>this.state

            可以通过this.state来访问随着与用户互动而变化的组件的特性

           

       <9>组件的生命周期

          组件的生命周期分为三部分:(1)Mounting ---- 已插入真实DOM

                                                        (2)Updating ---- 正在被重新渲染

                                                        (3)Unmounting ---- 已移除真实DOM

          React为每个状态提供了两种处理方法,will是函数在进入状态前调用,did是函数在进入状态后调用,具体方法如下:

    • componentWillMount()
    • componentDidMount()
    • componentWillUpdate(object nextProps, object nextState)
    • componentDidUpdate(object prevProps, object prevState)
    • componentWillUnmount()

              同时还提供了两种特殊处理方法

    • componentWillReceiveProps(object nextProps):已加载组件收到新的参数时调用
    • shouldComponentUpdate(object nextProps, object nextState):组件判断是否重新渲染时调用

               <10>Ajax

                通过使用componentDidMout方法设置ajax请求,请求到数据后通过this.setState重新渲染页面

               

        <script type="text/babel">
    var UserGist = React.createClass({
      getInitialState: function() {
        return {
          username: '',
          lastGistUrl: ''
        };
      },
    
      componentDidMount: function() {
        $.get(this.props.source, function(result) {
          var lastGist = result[0];
          if (this.isMounted()) {
            this.setState({
              username: lastGist.owner.login,
              lastGistUrl: lastGist.html_url
            });
          }
        }.bind(this));
      },
    
      render: function() {
        return (
          <div>
            {this.state.username}'s last gist is <a href= {this.state.lastGistUrl} >here</a>
          </div>
        );
      }
    });
    
    ReactDOM.render(
      <UserGist source="https://api.github.com/users/octocat/gists" />,
      document.getElementById('example')
    );
        </script>

         参考文章:http://www.ruanyifeng.com/blog/2015/03/react.html

  • 相关阅读:
    Android学习笔记:TabHost 和 FragmentTabHost
    JS兼容性处理
    【题解】数颜色--带修改莫队
    技巧--对拍
    学习笔记--数论--莫比乌斯反演初认识
    【题解】售票系统--一道毒瘤题
    【题解】P3391 文艺平衡树
    学习笔记--计算几何
    题解 P2661 【信息传递】
    学习笔记--简化剩余系与欧拉函数φ( )
  • 原文地址:https://www.cnblogs.com/yezi-dream/p/7769173.html
Copyright © 2011-2022 走看看