混合开发的大趋势之 一个Android程序员眼中的 React.js 箭头函数,const, PropTypes

来源:互联网 发布:收看香港电视台软件 编辑:程序博客网 时间:2024/05/24 03:19

转载请注明出处:王亟亟的大牛之路

昨天写了篇React.js的开头之作,讲了讲块级作用域和let,先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android

上一篇的传送门:http://blog.csdn.net/ddwhan0123/article/details/52681169

这里补充下语法环境皆为 ES6


const

const类似于java中的 常量,申明了值就不允许改变。

申明了 就必须立马赋值 不然会 抛SyntaxError: Missing initializer in const declaration

赋值语句和普通变量没什么区别

 const Wjj = 10086;

const和let一样,也只能在所在的{}范围内有效,超出了也会抛出Uncaught ReferenceError: Wjj is not defined

和let一样 他也必须先申明后使用

const如果申明的是一个非基本数据类型,那么他会指向一个地址,但是这个地址的数据是可变的。

要怎么改变常量的值可以用

const wjj = [];

通过改变数组里元素的值来改变常量的值


箭头函数

第一眼看到给我的感觉像 java8的lambda 表达式,实际上也差不多,让我们来看看具体是怎么回事

他其实也就是 一种function(){}的简写,结构如下

([param] [, param]) => {   statements}param => expression

参数不是必须的,返回值也不是必须的,你可以根据自己的需要做出组合。

//无参数,无返回值() => { console.log( 'wjj' ) } //一个参数可以省略 ()x => { console.log( x )} ;// 多参数不能省略 ()(x, y) => { console.log( x + y ) } ;//和普通函数一样,箭头函数也可以使用 ES6 的“默认参数”形式var wjj = (x = 1, y = 2) => x + y;wjj(); //结果等于 3//多行语句要用 {} 括起来;单行表达式不需要 {}x => { return x * x };x=> x+x;但是 x=> return x+x;会报错

PropTypes

React.PropTypes 提供很多验证器 (validator) 来验证传入数据的有效性。当向 props 传入无效数据时,JavaScript 控制台会抛出警告。类似于RxJava的.fliter()。

接下来用一个简单的例子来解释下这个属性

<!DOCTYPE html><html>  <head>    <script src="../build/react.js"></script>    <script src="../build/react-dom.js"></script>    <script src="../build/browser.min.js"></script>  </head>    <body>      <div id="example"></div>      <script type="text/babel">      var TestPro=React.createClass({        propTypes: {          title: React.PropTypes.string.isRequired,        },        render: function() {          return <h1> {this.props.title} </h1>        }      });      ReactDOM.render(        <TestPro title="hi" />,        document.getElementById('example')      );      </script>    </body>  </html>

这里定义了一个TestPro组件,我们设定了他的title属性必须为string类型,我们在调用装载这个组件的时候传入了’hi’,效果如下
这里写图片描述

如果传入不合法值的时候就会报错了
这里写图片描述

2 0
原创粉丝点击