十月开发小记

Node Part

1.在程序中通过process.env.npm_lifecycle_event这个变量,可以获得npm run ${XXX}之中的字符串,针对不同的操作做不同的配置

2.0.0.0.0这个IP在windows下可以代表所有没有被标记的ip,具体用途可以是在使用服务器时,将访问端口配置成0.0.0.0,这样就可以在外网对本机服务器进行访问了

3.process.argv数组之中存储的是实际运行的命令 每个执行的js文件保存的字符串都会是完整的路径

4.呵呵react-router居然默认安装的是0.13.0版本,这真是极大的一个坑,值得你调试一天

5.Object.freeze() 方法可以冻结一个对象,冻结指的是不能向这个对象添加新的属性不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说,这个对象永远是不可变的。该方法返回被冻结的对象。

6.document.documentElement.clientWidth;,document.documentElement.clientHeight;可以获取移动设备的可见高度和宽度,移动端是个大坑,在微信和UC浏览器中显示可能都会有巨大不同;

System Part

1.进程间的内存是无法共享的,线程的内存共享,对一个应用程序开辟多个线程便可以”同时”进行多种操作

2.每个线程都一个自己的帧,帧里面存放了现在的堆栈信息和过程信息;帧里面的信息不会不会混杂到一起

React Native Part

1.运行packager的时候,经常会出现各种各样的问题,在windows上更是坑洞遍地,除了教程里面经常出现的之外,这里再说你两个

如果程序一直卡在find dependencies的状态,并且内存不断攀高,到了一定时间过后告诉你内存达到最大值并推出,不要想太多,这只是因为你没有把包装好,不要使用cnpm装包,而且也一定要注意过程中出现的gyp错误,这个错误的出现是因为,各种包为了适应不同的平台(*inux,windows),选择在npm install过后再进行编译,如果没有编译成功就会抛出错误,为日后开发错误埋下伏笔;

如果报了watchman的错误,可能是因为你没有装全局的watchman也有可能是因为你装了cygwin导致系统认为任务是在linux环境下进行,这个时候需要去掉cygwin环境变量;当然还有可能是因为你是windows系统,他有几率报错,这个时候要删掉文件里面的watchmannpm uninstall warchman

2.react-native中的阴影属性仅支持ios系统,安卓只有靠图片来实现了

3.如果需要使用POST发送表单请求,最好是直接用下面这种方式,使用FormData对象传数据的话,会被webkit浏览器强行转换为webkit的一种binary文件,后台容易报400的参数错误;

1
2
3
4
5
6
7
8
fetch("http://bilibili-service.daoapp.io/search",{
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: "content=aa&page=0&count=20"
}).then(rsp => rsp.json())
.then(rsp => console.info(rsp))