开发过程中发现对React Native生命周期的理解还不够完整,导致渲染的时候性能出现问题,所以写了个例子观察了一下。
1  | /**  | 
1  | /**  | 
1  | 第一次加载:  | 
Artifical Dog
开发过程中发现对React Native生命周期的理解还不够完整,导致渲染的时候性能出现问题,所以写了个例子观察了一下。
1  | /**  | 
1  | /**  | 
1  | 第一次加载:  | 
在做本地缓存视频管理的时候,需要对数组进行大量的操作,本来React Native 有lodash工具库,旁边的前端同事使用的是underscore,大神在边上我就使用了underscore,其实api和lodash差不多,只是lodash更加完善,简单的处理underscore也足够。
直接下载underscore-min.js
1  | import _ from './path/underscore-min';  | 
下面是我主要用到的Api:
1  | 
  | 
1  | let data = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });  | 
1  | let data = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });  | 
1  | let data = _.difference([1,2,3,5], [2,3,6,7,8])  | 
1  | _.uniq(array, [isSorted], [iteratee])  | 
1  | _.indexOf([1, 2, 3], 2);  | 
1  | _.contains(list, value, [fromIndex])  | 
compact返回一个除去所有false值的 array副本。
在javascript中, false, null, 0, “”, undefined 和 NaN 都是false值.
1  | _.compact([0, 1, false, 2, '', 3]);  | 
更多Api参考文档http://www.css88.com/doc/underscore/
响应事件:
两个属性的回调函数里返回true表示响应事件,组件成为事件的处理者会走回调
View.props.onResponderGrant: (evt) => {}
被拒绝成为处理者,执行回调:
View.props.onResponderReject: (evt) => {}
组件处理触摸事件的回调:
View.props.onResponderStart: (evt) => {}
View.props.onResponderMove: (evt) => {}
View.props.onResponderRelease: (evt) => {}
View.props.onResponderEnd: (evt) => {}
是否释放事件处理权限
View.props.onResponderTerminationRequest: (evt) => bool
View.props.onResponderTerminate: (evt) => {}
多个组件嵌套响应事件:
如果多个父子组件都onStartShouldSetResponder返回true,那么最内层的子组件会最先响应,这是所谓的事件处理的冒泡机制,当然层层深入到子组件首先得得到父组件的同意:
回调返回true表示该组件捕获了该事件,那么子组件就无法成为事件响应者了
panresponder对触摸事件进行了封装提供的API让我们可以更方便的使用手势识别功能
在最近的项目里要实现parallax的scrollview头部图像拉伸效果,GitHub上搜索后发现有实现的库,那好啊npm install —save简单粗暴,咔咔import结果Android手机分分钟没效果,遂弃之,决定自己实现一个,这里面就用到了手势识别,结合动画下拉伸缩图片,scrollview和外别view手势识别冲突的拦截等。
第一个React Native应用BetterThan终于上线了,是一款健身健康类应用,Android,iOS里面涉及到很多各自平台的原生技术点,因为React Native 主要是做UI相关,而很多东西需要原生实现别如:第三方登录分享,推送通知,视频录制播放等,所以说不是纯ReactNative应用,应用的第一个版本包含了直播,社交圈子和我的个人信息三部分,目前来看只能算作测试版本先行试水,接下来会迭代新的模块和继续填坑。









Android版本下载:
Mac下Linux实现shift+pageup/pagedown 翻页
1  | shift+fn+up/down  | 
查看Linux 服务器地址
1  | ip addr  | 
Mac终端连接Linux
1  | ssh username@ipaddress  | 
redis安装后后台运行服务
1  | src/redis-server &  | 
启动客户端
1  | src/redis-cli  | 
关闭服务
1  | shutdown  | 
[redis安装参考](http://itbilu.com/database/redis/4kB2ninp.html)