JavaScript 第6页
背景:
使用的Xcode版本号为:Version 8.3.3 (8E3004b);
连真机运行React Native项目;
Build success,但是在install application on iPhone时提示“the application does not have a valid signature”。
解决方法:
打开Xcode顶部菜单Product,选择Clean;
点击三角箭头重新build项目。
最难看公司代码和redux官方文时了解到monkey patch这个名词的。monkey是猴子的意思,patch是补丁的意思,monkey patch的意思就是你先去抓一只猴子,然后给他们线和针,教他们打补丁,等他们学会了之后就可以自己给自己打补丁了——开个玩笑。Wikipedia上对monkey patch的定义是:
A monkey patch is a way for a program to extend or modify supporting system software locally (affecting only the running instance of the program).
redux的middleware中间件的实现原理也是monkey patch,具体就不在赘述了,官网上已经写得很明白了(每应用一个中间件,就相当于重写了一次store.dispatch方法):http://redux.js.org/docs/advanced/Middleware.html
面试的时候,有问到一个问题,switch组件(滑动开关组件)应该用props还是states,领导说是要用states,不过个人觉得应该是用props,因为如果这个组件要是作为第三方组件供他人使用的话,肯定不会取改组件内部的代码的,感觉还是通过props传两个值(一个是表示开关状态的flag,一个是用于修改开关flag的值的函数)比较适合,我vue项目里是这么去弄的,不知道是不是我想错了-_-。
触控系统会将单点或多点触控视为一个“交互”(interaction),然后在等到所有触控都结束会被取消后再执行runAfterInteractions()回调函数。
InteractionManager也允许app在动画开始时通过创建交互“句柄”(interaction "handle")来注册动画,然后在动画结束后清除该句柄。
如果你针对特定平台的代码比较复杂的话,你应该考虑将它们拆分到独立的文件中。当一个组件要加载的另外一个组件对应的文件名有.ios.和/或.android.扩展名时,React Native会根据当前所处平台来加载对应的文件。
StatusBar组件是允许同时出现多个的(当然,状态条是只有一个的),多个StatusBar组件的属性会被合并到一起(越后装载的StatusBar组件的属性会越迟被合并)。比如,可以通过Navigator实现根据路由来调整状态条的样式。
通过正则表达式的exec()方法,你会得到一个这样的数组[正则完整匹配的字符串, 正则中第一个括号内表达式所匹配的字符串, 正则中第二个括号内表达式所匹配的字符串, ..., 正则中最后一个括号内表达式所匹配的字符串],通过解构,你能更方便的取你想要的值。
一、import
语法:
import defaultMember from "module-name";
import * as name from "module-name";
import { member } from "module-name";
import { member as alias } from "module-name";
import { member1 , member2 } from "module-name";
import { member1 , member2 as alias2 , [...] } from "module-name";
import defaultMember, { member [ , [...] ] } from "module-name";
import defaultMember, * as name from "module-name";
import "module-name";
引入模块的整个内容。下例会将myModule添加到当前作用域内,myModule会包含my-module模块暴露的所有东西(但不会包含默认输出的member)