AVUE极速开发
让我们一起用数据来驱动好伐?
apicloud基于html,css,js进行开发,代码写法上跟web写法差不多,jQuery这种库也可以用,但是体积大,频繁操作dom,而且开发速度慢,也不便于维护,所以搞一个aVue来提高一下开发体验,毕竟任务完成快才有时间学习嘛。
起手式
首先要考虑的是移动端的点击300ms的延迟,直接先简单粗暴引入一个fastclick.js,因为整体是要基于Vue的,所以也来下载一个vue.min.js,放在目录备用,接下来起锅烧油。
ES6真香操作
//使aVue继承Vue 以免对Vue源码直接扩展导致维护难度增大
class aVue extends Vue {}把api方法拷贝到aVue上
//对原型扩展api的相关方法 使语法风格一致
for(let _apiItem in api){
aVue.prototype[_apiItem] = api[_apiItem]
}扩展一些基本的方法备用
//外部定义方法
const _avMethods = {
//关闭窗口的方法
_avCloseWin(winName){
if(winName){
this.closeWin();
}else{
this.closeWin({
name: winName
});
}
},
//扩展options参数 --- listener
_avEvent(item,fn){
this.addEventListener({
name: item
}, function(ret, err){
if( ret ){
fn(ret.value)
}else{
api.toast( JSON.stringify( err ) );
}
});
},
_avSendEvent(item,data){
this.sendEvent({
name: item,
extra: data
});
},
//时间戳处理 yyyy-mm-dd hh:mm
_avTimeEncode(time,type){
let now = new Date(parseInt(time));
let year = now.getFullYear();
let month=now.getMonth()+1<10?'0'+(now.getMonth()+1):now.getMonth()+1;
let day = now.getDate();
let hour=now.getHours()<10?'0'+now.getHours():now.getHours();
let minute=now.getMinutes()<10?'0'+now.getMinutes():now.getMinutes();
return year+'-'+month+'-'+day+' '+hour+':'+minute
}
}接下来做一下过滤器
进入正戏
压缩
将vue.js fastclick.js avue.js进行es5编译打包,生成avue.js 文件
使用方法
组件
这里只做了一个雏形,还有很多地方需要完善和优化,但是鉴于公司原来的写法写了太多东西,不会采用这种方式开发,所以这个也没继续更新了,就一般自己使,有时间的话再回头重新完善一下。
最后更新于