学了react native 有小两个星期的时间了。一直在中文社区看一些人们常犯的错误,和对一些三方组件的学习。在之前的学习中有很多问题,也是一直慢慢看文档来解决。
从一开始的基本组件的学习,navigator跳转,到后来的传参,写方法解决安卓和IOS原生开发的一些问题,今天在这里说说关于两个基本 props 和 state 的一些个人的观点。
说到props ,官方文档有这样的说明,
当给组件自定义属性的时候,在项目里通常我们也是会这样做,自定义一个组件,然后,moudle.exports = XXX(组件名) ,这样使得后期维护,和代码的可读性更强。官方文档是这样说明的,然而当实际使用的时候,我们往往需要定义出这样的属性,在ES5里,我们有getDefaultProps 和 getInitState 两个方法,
在ES6里State放在了构造函数里。而Props我查阅好多资料,下面贴出,我在ES6关于定义Props的方法
值得注意的地方:
1 在组件内部的使用static
static defaultProps = {
name: ... }
2 在组件外部
Hello.defaultProps = {
name: ... }
方法里用的是在组件内部,还有可以在组件外部调用属性。
而state 在官方最新的0.43文档里是:
我们使用两种数据来控制一个组件:props和state。props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。 对于需要改变的数据,我们需要使用state。
一般来说,你需要在constructor中初始化state(译注:这是ES6的写法,早期的很多ES5的例子使用的是getInitialState方法来初始化state,这一做法会逐渐被淘汰),然后在需要修改时调用setState方法。
state有太多需要注意和说明的地方,这我会在之后的文章里慢慢通过项目的例子来更好的解释清除state的问题和需要注意的地方。
以上只是我个人的一些观点,希望有看到的大神,多多给点建议,不足的地方还有很多。学习的路还有很长。