a coder's diaries

0%

1, 进入官网下载VSCode,安装,打开软件。官网地址

2, 方法一,但是这种方法对我来说像是临时的,每次重启电脑后又失效了。

Open the Command Palette (⇧⌘P) and type ‘shell command’ to find the Shell Command: Install ‘code’ command in PATH command.

3, 方法二,在.bash_profile文件里加入环境变量。

1
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"

由于我没有这个文件,自己touch了一个,修改后执行source ~/.bash_profile,接着恐怖的事情发生了,我所有的命令除了cd都失效了…

阅读全文 »

Canvas是基于位图的图像,最常见的用途是通过擦除重绘渲染图像,绘制含有大量元素的图表,适合像素处理,动态渲染和大数据量绘制,使用JavaScript程序绘图。

普通的Canvas

Canvas是绘图环境的容器,默认宽300px,高150px,微信小程序开发文档里写的高225px,经验证后果然是微信文档写错了。

它有一个getContext方法,传入2d是我们最常用的平面绘制,传入webgl用来开启GPU加速渲染。这个方法返回一个context, context是状态机,可以改变状态,几乎所有的渲染操作的最终效果与context本身的状态有关系。

神奇的原生组件

在开发小程序的过程中经常遇到这样的问题:原生组件的层级是最高的,所以页面中的其他组件无论设置z-index为多少,都无法盖在原生组件上。例如camera、input、live-player、live-pusher、map、textarea、video,当然还有canvas。

缘起·原生组件(1)

在搞清楚原生组件这个奇怪的特性之前,先要明白微信小程序是怎么来的:
做过微信网页开发的同学应该很熟悉基于JS-SDK的微信内嵌网页,这种网页缺点很多,性能差,加载慢,白屏,页面切换生硬等等,开发者没有足够的时间优化页面体验。微信面对这个痛点,想不如干脆我们做好基础框架开放给开发者好了,就是17年推出的小程序。

阅读全文 »

1,事件绑定使用on,比如onTap(微信和百度使用bindtap)。自定义组件的事件定义变量名时必须加上on。

2,css scoped不起作用。

3,console.log不能用逗号拼接。

4,正式服务器POST请求报错,报错码14, 错误信息是json parse error。因此改成数据传参类型是text。测试服务器GET,POST都报错14,没有发出请求,给成text后报错码19,http status error。

5,自定义组件传值是props(微信和百度是properties)。

阅读全文 »

1,安卓百度10.11.0.12之前版本不支持自定义组件。

2,自定义组件名引入时不能有大写字母,可以用’-‘代替。

3,自定义组件在methods里调用methods方法,需要把this传过去,因为方法没有挂载this下
this.methos.func.call(this)

4,自定义组件triggerEvent传值为空是传{}。

5,自定义组件properties的observer不管用。

6,自定义组件不支持css media。

7,真机使用小程序接口不能用端口号,ios和部分安卓机不能用内网的域名。

8,input组件不受控,自带的输入和赋予的value匹配不上,输入过快会发生吞字现象。

9,swan.checkSession检查是否过期不准。

阅读全文 »

开发工具:Umi + redux-saga + ant-design-mobile + styled-component

使用环境:钉钉浏览器

一、Umi

1, 问题:Umi 版本从1.2.6升级到1.3.1后,使用fetch发送POST请求(Content-type=application/json),一直处于pending状态,一段时间后超时。

定位问题:发现经过代理转发后的请求都会处于pending状态。

解决方案:fetch Content-type 最后要加分号,例如:参考链接

1
2
3
headers: {
"Content-type": "application/json; charset=UTF-8;"
}

跟进:此问题是由于Umi把mock提到proxy之前引起的,在1.3.5版本修复了,参考链接

2, 问题:升级到1.3.3后,安卓6.0.(努比亚)钉钉打开白屏,使用alert弹出错误内容为使用了保留字。手机自带浏览器打开白屏,IE浏览器白屏并报错`是无效字符

定位问题:Umi-build-dev/lib/utils/guessJSFileFromPath.js 文件中的ES6语法未被解析成 ES5

解决方案:修改nodd_modules下该文件,将ES6语法改为ES5写法。参考链接

3,问题:线上测试版跳转链接时不起作用,后更改modal的namespace起作用了。

原因:因为没进入此namespace页面,按需加载时没有加载到modal。后发现 subscriptions 也只有页面加载后才能调用。

4,问题:Chrome打开页面正常,钉钉浏览器打开页面,显示‘undefined is not a method’。

定位问题:使用Array的find方法,此为ES6语法。

阅读全文 »