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

    xiaoxiao2023-03-24  4

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

    昨天写了篇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’,效果如下

    如果传入不合法值的时候就会报错了

    转载请注明原文地址: https://ju.6miu.com/read-1202338.html
    最新回复(0)