“微信小程序”的开发框架来体验一下,不错——自带UI框架。但是问题出在他的IDE上,表现的相当糟糕——其实主要是因为我买了多年的WebStormLicense。所以,我觉得他的IDE没有我的好用。而且,作为一个支持自由和开源的“GitHub中国首席Markdown程序员”。微信在“微信小程序”中领先网页关闭,我们再也不能愉快地分享我们的代码了。如果放任自流,Web世界的未来堪忧。好了,废话结束:文章太长不想看,可以直接看demo哈哈:GitHub:https://github.com/phodal/weapp-webdemo预览:http:///weapp.phodal.com/下真实世界MINA“微信小程序”的三个基本要素背后是一个叫做MINA的框架。在之前的文章中,我们已经介绍的差不多了。现在介绍管道:转换wxml和wxss当我们修改WXML和WXSS时,我们需要重新编译项目才能在浏览器上看到效果。这时候后台会进行一些transform动作:wcc会把wxml转成generateFun,执行这个方法会得到一个虚拟的domwxss,把wxss转成css——这个有待商榷。wcc和wxss可以在vendor目录下获取,在“微信web开发者工具”下输入help,会得到如下东西:运行openVendor(),会得到上面的wcss、wxss、WAService.js、WAWebview.js四个文件。转换js文件是对js文件进行组装的过程,下面是我们的app.js文件:App({onLaunch:function(){}})转换后会变成:require,module){varwindow={Math:Math}/*与babel兼容*/,location,document,navigator,self,localStorage,history,Caches;App({onLaunch:function(){}})});要求(“app.js”);我就当你已经知道这是什么了,我不想知道,反正我也不解释~~。同于:define("pages/index/index.js",function(require,module){varwindow={Math:Math}/*compatiblewithbabel*/,location,document,navigator,self,localStorage,history,caches;Page({data:{text:initData}});require("pages/index/index.js");至于它是如何替换或者附加到html的,我就不解释了。MINA是如何工作的?为了运行一个Page,我们需要一个virtualdom,也就是wcc转换的函数,比如:/*v0.7cc_20160919*/var$gwxcvar$gaic={}$gwx=function(path,global){function_(a,b){b&&a.children.push(b);}function_n(tag){$gwxc++;if($gwxc>=16000){throw'够了,超过dom限制,你不做傻事,你呢?'};返回{tag:tag.substr(0,3)=='wx-'?tag:'wx-'+tag,attr:{},children:[]}}函数_s(scope,env,key){returntypeof(scope[key])!='undefined'?scope[key]:env[key]}function_wl(tname){console.warn('模板`'+tname+'`正在递归调用,将被停止。')}function_ai(i,p,e,me){varx=_grp(p,e,me);if(x)i.push(x);else{安慰。warn('path`'+p+'`notfoundfrom`'+me+'`')}}function_grp(p,e,me){if(p[0]!='/'){varmepart=me.split('/');mepart.pop();varppart=p.split('/');for(vari=0;i
