在正式进行教程之前,先做一下思想工作,让读者朋友们心里做到这是什么?要学习什么?能做什么?如果你连本节都没有兴趣阅读下去,那请您移步别处去吧,就不浪费您的时间了。
第一,小程序是什么?
说到这里,再说说,为什么要跨平台,一些小白可能认为,开发一个程序为什么不能在其他平台(系统)运行,很是纳闷,因为不同的平台(系统)是使用不同的技术(高级编程语言)开发实现的,同一种语言编写的程序是很难直接运行在另一个语言系统环境中的。就好比你家的自行车和轿车,你不能把自行车的轮胎安装给轿车使用,轿车的零件不能给自行车使用。虽然这个例子并不鲜明的说明平台的差异,但是总归你能理解一些皮毛。 但是呢,聪明的前辈总能找到不同平台的共性,或者是设计开发平台的初始人员对于某些系统功能采用通用性的方案,或者是国际标准组织(制定某个技术的标准,就必须这样实现,不能单独做战只顾自家),那么这些方案就是跨平台的,即我这样写能在windows系统上运行,甚至不需要修改也可以在mac系统上运行。web技术就有自己的国际标准组织单位(W3C),所以,它很好的支持跨平台,与生俱来的特质。
再来说说小程序,它使用的开发技术核心仍然是web技术(HTML+CSS+JS),只是针对移动平台(手机!手机!)进行了优化,去掉那些加载性能差的,优化那些可以优化后就可以迅速渲染(指快速的画到屏幕上)就能展现出来的,将视图组件化(使其通用、复用),甚至通过技术手段,将web的视图通过原生组件替换出来显示增强体验,目前的小程序都是寄生在某个APP中运行,脱离了寄生的APP,就失去了它的价值。其实这个时候,APP扮演的是一个运行环境,这里就不多解释,避免进入技术盲区!这里再进行扩展一下,所有IT技术的目的就是写出来界面,要让你看到!让你感知到,让你做出判断,做出理解,这就是基本的交互。没有界面的软件,那就是堆二进制垃圾。
第二,要学习什么
阅读本规则前,你必须对html、css、js有一定的了解掌握,否则如果是没有任何基础的,就不要往下读这第二条了。
html:视图页面,就是你看到的屏幕显示,官方述语叫视图
css:你画了个视图(素描),还没有上色配彩,添油加醋
js:全名:javascript,一种脚本语言,或者你就认为它是一种计算机语言就行了
没有了CSS,html+js也是可以运行的,就像一个奇丑无比的人照样可以吃饭、睡觉、泡妞(被泡)。但是,html要是没有了js(杠精们,我们不谈php等其他脚本语言),html就不能吃饭、睡觉、泡妞(被泡)了,这样的页面叫静态页面,就好比一张画,一个裸体,你只能看,你戳它时,没有反应,你打它时,它没有任何表现。所以,js是视图与你进行沟通的桥梁,你在视图上点击了某个东西,js就要做相应的事情。比如你点击了视图上登录按钮,那么js就要收集页面上你输入的用户名、密码经过网络传输给服务器处理你的用户名和密码是不是对的,能不能登录成功进入下一个页面。css负责为你穿漂亮的衣服,画漂亮的妆,让你看起来人模狗样,光鲜靓丽。这样你应该能很好的理解这三个玩意间的苟且关系了。
随时时代的发展,技术的发展,码农的自我修养不断的提高 ,对于基础工具的不断理解与掌握,我们变态的开始各种封装,目的就是为了我们更快的实现某些功能。极高的提升某些东西的效率。js就这样,不断的进化,标准的不断完善优化,推陈出新,市面上出现了形形色色的js库,这里我们就先列举几个:jquery、angularjs、react、vue,你只要知道这些玩意都是js,只是比普通的js更牛逼,更高级而已,猫换了个姿势走路,但它还是猫!腿还是4条腿。
现在我们来说说小程序,它把html叫做wxml、它把css叫做wxss、它把js还是叫做js(只是特定的给你暴露出来一些视图渲染的接口函数),它画到脑袋了,给你一个句柄,告诉你这个地方它正在画脑袋。它画到胳膊了,又会给你一个句柄,此时它正在画胳膊。它画到腿了,又会给你一个句柄,正在画腿,等后面你的理解变强了,精深了,你就知道这些玩意就是生命周期中的某个接口(函数、句柄)。句柄就是函数,就是方法。通过这些方法,你就能在适当的地方做适当的事情。它对时间的、字符串的、数组的、对象的、字典的处理还是js的那一套没有变!变的只是语法!所以语法是什么玩意?语法就是这个语言的书写规则,它规定,你就应该这样写它就能懂,你那样写它就不懂,就会给你报错。当然你那样写,也许在其他平台上是对的。这就是语法,并不是什么高深的不可理解的破玩意儿。别看那些什么各种书对于语法的阐述,也许你根本看不懂它们对于语法的定义。
那本尊再引申点:语法就是服务于编译器(解析器、解释器)的特定规则,xml、json你总该知道吧,它也有自己的解析器,你只有用解析器才能取出里面的数据。没有解析器,那它就是一坨没用的字符串(二进制垃圾)。同样,任何系统中也运行着一套代码解析器,正确解析后交给CPU去处理(CPU再去调用各种硬件去执行命令,该显示的就扔给显卡,该 播放的就扔给音频功放)。而语法就是这些解析器要求你这样写的规则。
第三:能做什么
基于web技术,能做的事情,你想想看。游戏、应用。好像是一句废话。。。不不不。。并不是无限制的!小型游戏适合。大型游戏不适合。轻量级应用适合,重量级应用勉强凑合。
当然除去用户体验,大型游戏,也能整,大型应用也能整,没有这货不能整的。正如前面说过,小程序只适合运行在寄主APP中,离开寄主APP,它什么也不是。当然你适当的改造下,在浏览器中运行使用也未尝不可,但是我相信,没有傻子这样去做。
下一章节,我们将正式进行小程序的实战开发讲解。