混合开发的大趋势之 一个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’,效果如下
如果传入不合法值的时候就会报错了
- 混合开发的大趋势之 一个Android程序员眼中的 React.js 箭头函数,const, PropTypes
- 混合开发的大趋势之 一个Android程序员眼中的 React.js 块级作用域 和 let
- 混合开发的大趋势之一React Native Props (属性)
- 混合开发的大趋势之一React Native之简单的登录界面
- 混合开发的大趋势之一React Native之Image (脑动理解)
- 混合开发的大趋势之一React Native之页面跳转
- 混合开发的大趋势之一React Native与Android联调
- 混合开发的大趋势之一React Native之页面跳转(2)+物理返回+特定平台代码
- 混合开发的大趋势之一React Native(环境搭建)
- 混合开发的大趋势之一React Native(Hello Horld+简单ViewGroup)
- 混合开发的大趋势之一React Native(对齐方式)
- 混合开发的大趋势之一React Native State (状态),Style(样式)
- 混合开发的大趋势之一React Native Height and Width (尺寸),Flexbox(位置关系)
- 混合开发的大趋势之一React Native TextInput (文本输入)
- 混合开发的大趋势之一React Native ScrollView (拉伸视图),ListView(列表视图)
- 混合开发的大趋势之一React Native ScrollView (拉伸视图), ListView(列表视图)
- 混合开发的大趋势之一React Native手势行为那些事
- React 的PropTypes
- AngularJs ng-repeat 必须注意的性能问题 - 灰机_不会飞
- <转>SFTP 和FTPS的区别是什么?
- Lua+Nginx 安装
- 从0开始学习Git系列之「Git中阶」
- lLinux命令-4:mkdir(Make Directory)命令
- 混合开发的大趋势之 一个Android程序员眼中的 React.js 箭头函数,const, PropTypes
- 嵌入式QT文件管理显示磁盘中文文件名
- 文件的上传下载
- Intel-iot-services-orchestration-layer使用教程(一)
- 从0开始学习Git系列之「Git高阶」
- 缓存无底洞问题(multiget hole)
- 文件/etc/fstab
- ios设备信息汇总
- 回过头再看 计算机体系结构1----CPU上下文切换