开发过程中发现对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)