• React,React Native中的es5和es6写法对照


    es6用在React中的写法总结:

        在es6还没有完全支持到浏览器的阶段里,已经有很多技术人员开始用es6的写法来超前编程了,因为有转义es6语法的工具帮助下,大家才可大量使用。解析看看es6写法用在react中的代码呈现。

     

    1.引用外部文件 

    //es5写法
    var React  = require('react');
    
    var {Image,Text}= React;
    //es6
    import  React,{Image,Text} from 'react';

    2.创建React模块         

    //es5
    var MyComponent = React.createClass({
    
                 ...
    
    });
    
    module.exports = MyComponent;
    //es6:使用export default来实现
    
     export default class MyComponent extends React.Component{
    
                  ...
    
    }

    3.创建React组件

    //es5
    var Input = React.createClass({
        render:function(){
            return (
              <Input  source={this.props.source}  />
            );
        }
    });
    //在es6里,通过定义一个继承自React.Component的class来定义一个组件类
    class Input extends React.Component{
         render(){
             return(
               <Input  source={this.props.source} />
          );
       }
    
    }

    4.创建React函数方式

    //es5
    var Input = React.createClass({
          getInitialState:function(){
             ...
          },
          render:function(){
             renturn(
                <Input />
             );
          }
    });
    //es6
    class Input extends React.Component{
        getInitialState(){
          ...
        }
        render(){
          <Input />
        }
    }

     5.初始化state

    //es5
    var Star = React.createClass({
       getInitialState:function(){
           return{
               sayHello:this.props.hello
           }
       }
    });
    //es6 有2种写法
    第一种:
    class Star extends React.Component{
        state = {
             sayHello:this.props.hello
       }
    }
    
    第二种:
    class Star extends React.Component{
       constructor(props){
         super(props);
         this.state = {
               sayHello:this.props.hello
         }
       }
    }

     5.定义组件属性类型和默认属性

    //es5
    var Star = React.createClass({
       getDefaultProps:function(){
          return{
               minVal:0,
               maxVal:true
           }
       },
       propTypes:{
           minVal:React.PropTypes.number.isRequired,
           maxVal:React.PropTypes.bool.isRequired
       },
       render:function(){
         return (
            <View />
         )
       }
    });
    //es6里可以统一使用static实现.在static成员之间用;号隔开
    class Star extends React.Component{
       static defaultProps = {
           minVal:0,
           maxVal:true
       };//注意;号
       static propType = {
           minVal:React.PropTypes.number.isReqired,
           maxVal:React.PropTypes.bool.isRequired
       };
       render(){
            return (
               <View />
           )
       }
    }
    
    //另一种写法
    class Star extends React.Component{
      render(){
         return(
            <View />
         )
      }
    }
    
    Star.defaultProps = {
        minVal:0,
        maxVal:true
    }
    
    Star.propTypes = {
        minVal:React.PropTypes.number.isRequired,
        maxVal:React.PropTypes.bool.isRequired
    }

     

  • 相关阅读:
    08月24日总结
    08月23日总结
    08月22日总结
    装饰器
    卢菲菲最强大脑记忆训练法全套教程 01
    LeetCode 704 二分查找
    LeetCode 1480 一维数组的动态和
    NIO 总结
    LeetCode 881 救生艇
    url的组成部分
  • 原文地址:https://www.cnblogs.com/kuailingmin/p/5476884.html
Copyright © 2020-2023  润新知