在正式進行教程之前,先做一下思想工作引镊,讓讀者朋友們心里做到這是什么朦蕴?要學習什么?能做什么弟头?如果你連本節(jié)都沒有興趣閱讀下去吩抓,那請您移步別處去吧,就不浪費您的時間了赴恨。
第一疹娶,小程序是什么?
? ? ? ? 說到這里伦连,再說說雨饺,為什么要跨平臺,一些小白可能認為惑淳,開發(fā)一個程序為什么不能在其他平臺(系統(tǒng))運行额港,很是納悶,因為不同的平臺(系統(tǒng))是使用不同的技術(高級編程語言)開發(fā)實現(xiàn)的歧焦,同一種語言編寫的程序是很難直接運行在另一個語言系統(tǒng)環(huán)境中的移斩。就好比你家的自行車和轎車,你不能把自行車的輪胎安裝給轎車使用倚舀,轎車的零件不能給自行車使用叹哭。雖然這個例子并不鮮明的說明平臺的差異,但是總歸你能理解一些皮毛痕貌。 但是呢风罩,聰明的前輩總能找到不同平臺的共性,或者是設計開發(fā)平臺的初始人員對于某些系統(tǒng)功能采用通用性的方案舵稠,或者是國際標準組織(制定某個技術的標準超升,就必須這樣實現(xiàn),不能單獨做戰(zhàn)只顧自家)哺徊,那么這些方案就是跨平臺的室琢,即我這樣寫能在windows系統(tǒng)上運行,甚至不需要修改也可以在mac系統(tǒng)上運行落追。web技術就有自己的國際標準組織單位(W3C)盈滴,所以,它很好的支持跨平臺,與生俱來的特質巢钓。
? ? ? ? 再來說說小程序病苗,它使用的開發(fā)技術核心仍然是web技術(HTML+CSS+JS),只是針對移動平臺(手機症汹!手機硫朦!)進行了優(yōu)化,去掉那些加載性能差的背镇,優(yōu)化那些可以優(yōu)化后就可以迅速渲染(指快速的畫到屏幕上)就能展現(xiàn)出來的咬展,將視圖組件化(使其通用、復用)瞒斩,甚至通過技術手段破婆,將web的視圖通過原生組件替換出來顯示增強體驗,目前的小程序都是寄生在某個APP中運行济瓢,脫離了寄生的APP荠割,就失去了它的價值。其實這個時候旺矾,APP扮演的是一個運行環(huán)境蔑鹦,這里就不多解釋,避免進入技術盲區(qū)箕宙!這里再進行擴展一下嚎朽,所有IT技術的目的就是寫出來界面,要讓你看到柬帕!讓你感知到哟忍,讓你做出判斷,做出理解,這就是基本的交互陷寝。沒有界面的軟件锅很,那就是堆二進制垃圾。
第二凤跑,要學習什么
? ? ? ? 閱讀本規(guī)則前爆安,你必須對html、css仔引、js有一定的了解掌握扔仓,否則如果是沒有任何基礎的,就不要往下讀這第二條了咖耘。
html:視圖頁面翘簇,就是你看到的屏幕顯示,官方述語叫視圖
css:你畫了個視圖(素描)儿倒,還沒有上色配彩版保,添油加醋
js:全名:javascript,一種腳本語言,或者你就認為它是一種計算機語言就行了
沒有了CSS,html+js也是可以運行的找筝,就像一個奇丑無比的人照樣可以吃飯蹈垢、睡覺、泡妞(被泡)袖裕。但是,html要是沒有了js(杠精們溉瓶,我們不談php等其他腳本語言)急鳄,html就不能吃飯、睡覺堰酿、泡妞(被泡)了疾宏,這樣的頁面叫靜態(tài)頁面,就好比一張畫触创,一個裸體坎藐,你只能看,你戳它時哼绑,沒有反應岩馍,你打它時,它沒有任何表現(xiàn)抖韩。所以蛀恩,js是視圖與你進行溝通的橋梁,你在視圖上點擊了某個東西茂浮,js就要做相應的事情双谆。比如你點擊了視圖上登錄按鈕,那么js就要收集頁面上你輸入的用戶名席揽、密碼經過網(wǎng)絡傳輸給服務器處理你的用戶名和密碼是不是對的顽馋,能不能登錄成功進入下一個頁面。css負責為你穿漂亮的衣服幌羞,畫漂亮的妝寸谜,讓你看起來人模狗樣,光鮮靚麗新翎。這樣你應該能很好的理解這三個玩意間的茍且關系了程帕。
隨時時代的發(fā)展,技術的發(fā)展地啰,碼農的自我修養(yǎng)不斷的提高 愁拭,對于基礎工具的不斷理解與掌握,我們變態(tài)的開始各種封裝亏吝,目的就是為了我們更快的實現(xiàn)某些功能岭埠。極高的提升某些東西的效率。js就這樣荧呐,不斷的進化篮绰,標準的不斷完善優(yōu)化祝懂,推陳出新枫匾,市面上出現(xiàn)了形形色色的js庫吏颖,這里我們就先列舉幾個:jquery男娄、angularjs震蒋、react瞬场、vue乾巧,你只要知道這些玩意都是js句喜,只是比普通的js更牛逼,更高級而已沟于,貓換了個姿勢走路咳胃,但它還是貓!腿還是4條腿旷太。
現(xiàn)在我們來說說小程序展懈,它把html叫做wxml、它把css叫做wxss供璧、它把js還是叫做js(只是特定的給你暴露出來一些視圖渲染的接口函數(shù))存崖,它畫到腦袋了,給你一個句柄嗜傅,告訴你這個地方它正在畫腦袋金句。它畫到胳膊了,又會給你一個句柄吕嘀,此時它正在畫胳膊违寞。它畫到腿了,又會給你一個句柄偶房,正在畫腿趁曼,等后面你的理解變強了,精深了棕洋,你就知道這些玩意就是生命周期中的某個接口(函數(shù)挡闰、句柄)。句柄就是函數(shù)掰盘,就是方法摄悯。通過這些方法,你就能在適當?shù)牡胤阶鲞m當?shù)氖虑槔⒉丁K鼘r間的奢驯、字符串的、數(shù)組的次绘、對象的瘪阁、字典的處理還是js的那一套沒有變撒遣!變的只是語法!所以語法是什么玩意管跺?語法就是這個語言的書寫規(guī)則义黎,它規(guī)定,你就應該這樣寫它就能懂豁跑,你那樣寫它就不懂廉涕,就會給你報錯。當然你那樣寫艇拍,也許在其他平臺上是對的火的。這就是語法,并不是什么高深的不可理解的破玩意兒淑倾。別看那些什么各種書對于語法的闡述,也許你根本看不懂它們對于語法的定義征椒。
那本尊再引申點:語法就是服務于編譯器(解析器娇哆、解釋器)的特定規(guī)則,xml勃救、json你總該知道吧碍讨,它也有自己的解析器,你只有用解析器才能取出里面的數(shù)據(jù)蒙秒。沒有解析器勃黍,那它就是一坨沒用的字符串(二進制垃圾)。同樣晕讲,任何系統(tǒng)中也運行著一套代碼解析器覆获,正確解析后交給CPU去處理(CPU再去調用各種硬件去執(zhí)行命令,該顯示的就扔給顯卡瓢省,該 播放的就扔給音頻功放)弄息。而語法就是這些解析器要求你這樣寫的規(guī)則。
第三:能做什么
? ? ? ?基于web技術勤婚,能做的事情摹量,你想想看。游戲馒胆、應用缨称。好像是一句廢話。祝迂。睦尽。不不不。液兽。并不是無限制的骂删!小型游戲適合掌动。大型游戲不適合。輕量級應用適合宁玫,重量級應用勉強湊合粗恢。
? ? ? ?當然除去用戶體驗,大型游戲欧瘪,也能整眷射,大型應用也能整,沒有這貨不能整的佛掖。正如前面說過妖碉,小程序只適合運行在寄主APP中,離開寄主APP芥被,它什么也不是欧宜。當然你適當?shù)母脑煜拢跒g覽器中運行使用也未嘗不可拴魄,但是我相信冗茸,沒有傻子這樣去做。
下一章節(jié)匹中,我們將正式進行小程序的實戰(zhàn)開發(fā)講解夏漱。