转载请注明出处:王亟亟的大牛之路
昨天写了篇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’,效果如下
如果传入不合法值的时候就会报错了