-
比如音乐播放器的播放按键,第一次按播放(显示播放图片),第二次按停止(显示停止图片),第三次按又播放,周而复始。对于那种需要重复点击,但是两次点击的效果也不同的(无论是显示图片还是要执行不同的代码),使用 Switch 控件可以很方便的实现。
-
设计器自带的是点阵字体,字体大小为 16,不可更改,否则会显示错误。
-
关于定时器的使用的注意事项(主要是要记得及时删除定时器)
使用timer时,一般将其定义在page对象内,作为page的属性之一,这样在page退出时可以将无用的timer释放掉,防止内存泄漏。
setTimeout / clearTimeout 或者 setInterval / clearInterval 要成对使用,在合适的时刻一定要删除定时器。注意,即使是只会超时一次的 setTimeout 也一定要手动删除。否则,在页面频繁切换或其他情况下,系统会因内存泄漏完而宕机!
在代码中操作定时器变量时,切勿重新赋值。应该确保赋值之前该变量已经不持有定时器(不然就要先删除定时器)
Page 退出时应该删除当前 Page 中还存在的所有 Timer。在 onExit 方法中删除即可。
----- 来自《PersimUI 帮助手册》 -
全局变量的定义应该放在app.js
一般的全局变量定义在 app.js 内,在 page 文件中定义会不可控且造成内存泄漏,因为每次进入该页面加载 js 文件时,会去创建一个新的全局变量到内存中,上次进入该页面创建的该变量就会失去控制,一直存在于内存中,进而导致内存泄漏。
----- 来自《PersimUI 帮助手册》 -
自动整理JS代码的缩进快捷键(很方便的一个功能,省了不少排版时间)
Shift
+Alt
+F
-
go to define
功能(跳转到函数定义处)
针对在同一页面下的函数, 按住ctrl
键,同时鼠标放在引用的函数式子上,会有超链接编辑,然后鼠标点击可跳转。 -
循环调用重复的控件设置不同的参数(这里以
this.setData()
举例)
我们一般会这样写:this.setData({ label0: { value: 'A0'} }); this.setData({ label1: { value: 'A1'} }); this.setData({ label2: { value: 'A2'} }); this.setData({ label3: { value: 'A3'} }); this.setData({ label4: { value: 'A4'} });
其实,我们可以这样写:
var obj = { }; for (var i = 0; i<5; i++) { obj['label' + i] = {value: 'A'+i}; } this.setData(obj);
相当于
this.setData()
可以放入一个对象obj
,obj
就是如下形式:{ label0 : {value : "A0"}, label1 : {value : "A1"}, label2 : {value : "A2"}, label3 : {value : "A3"}, label4 : {value : "A4"}, }
-
善于使用
console.log()
函数
如下所示,如果你知道在某片代码段输出错误,只需通过插入console.log()
函数,当调试界面无法输出对应的console.log()
语句时,就知道是其之前的代码块出错了,能够很快的缩小范围。console.log('------------> 1'); //代码块1 console.log('------------> 2'); //代码块2 console.log('------------> 3'); //代码块3
-
this.setData()
可以同时给多个控件赋值,这样做可以减少些代码量
this.setData({
listctrl1: { id: 'localList' },
label1: { id: 'locallabel' },
Button1: { id: 'localseButton' }
});