React Native 琐碎知识点(持续更新......)

React Native

1.自定义属性中,必须选其中一种 shape: PropTypes.oneOf(['round', 'square']).isRequired

2.自定义属性中,要么指定具体数字,要么用full width: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['full'])]).isRequired

3.之前判断根据不同平台写 Style 时用 height: Platform.OS === 'ios' ? 200 : 100, 今天发现还有另一种写法 ,
...Platform.select({
ios: { top : 20 },
android : { top : 10 } }
),

marginTop:Platform.select({android:2, ios:0})

4.componentWillReceiveProps(nextProps) 在组件接收新的props时触发, 用法: if (nextProps.project !== this.props.project) { }

5.避免用户调整字体(大小)影响APP界面布局 Text.defaultProps.allowFontScaling=false 在程序启动页面加入这句

6.用命令行打包 react-native bundle --assets-dest /Users/kenny/temp/ --bundle-output /Users/kenny/temp/main.jsbundle --dev false --entry-file index.ios.js --platform ios, 路径地址请根据自己的环境修改

7.react-native init MyProject --version 0.39.2 React Native 初始化时指定版本

8.react-native run-android --variant Huaweidebug 运行调试程序的指定渠道包 10.react-native run-ios --device "Kennys iPhone" 运行调试程序到真机上(指定机器名)

9.使用 PureComponent 代替 Component 来简单优化子组件性能

10.setState 使用函数式: this.setState(prevState => ({ count: prevState.count + 1 }))

11。在列表的 item 上设置一个 key,这个 key 必须是唯一,最后不要用 index(用数据库里的 ID), 因为你如果删除一条记录,index 就都变了。

12.事件绑定

推荐使用:

在构造函数里 this.handleChange = this.handleChange.bind(this);
在类里 handleChange = () => { };
不推荐使用:

属性里 onChange={this.handleChange.bind(this)}
属性里 onChange={e => this.handleChange(e)}
原因:不推荐的两种方式,会在每次执行 render 方法时重新分配资源

node和npm

安装或更新 npm npm install -g -d npm@latest
查看 npm 版本信息用 npm version,内容要比npm -v 全面
npm update 命令对指定的 Package 进行升级,例如npm update redux
npm outdated 查询当前安装的所有 npm 包中是否有存在新版本, Wanted 列是当前项目支持的最高版本
npm install --save redux --save 的意思是安装的同时, 把模块和版本号添加到 dependencies 里
npm install --save-dev eslint --save-dev,将模块和版本号添加到 devDependencies,仅供开发期间使用
npm uninstall --save redux 删除 node_modules 包的同时,也从 dependencies 里清除模块和版本信息
npm shrinkwrap 允许用户锁定整个依赖树,让每个包使用特定的版本
exportFun.fun2(response); exportFun'fun3'; 在 Node 里支持字符串参数形式调用 exports 函数写法
yarn 与 npm 相比的优势在:1.本地缓存文件;2.并行化处理,安装更快;3.使用文件锁,保证跨终端的文件结构一致;4.安装包更安全
node --inspect index.js,使用 Chrome 开发者工具调试 Node.js
在 WebStorm + nodemon 调试,需配置为:/usr/local/bin/nodemon --exec /usr/local/bin/node

ES6

1.事件 bind 放在constructor里更高效(bindings once, use forevermore), 避免使用 Arrow function。如:
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick() { console.log('clicked!'); }
render(){
return(
<Text onPress={this.handleClick}>Click Me</Text>
)
}

2.在 JavaScript 里 null、undefined、0、-0、NaN 和 "" 都为 false

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容