微信小程序這么火熱晾虑,咱也不能錯(cuò)過疹味,所以我就嘗試著接觸了微信小程序,從注冊(cè)--搭建--開發(fā)第一個(gè)dome帜篇,總的感受就是方便快捷糙捺,接下來,就簡(jiǎn)單的說一下我對(duì)小程序的理解笙隙,詳情如下:
第一步:下載微信小程序開發(fā)者工具并安裝洪灯,安裝路徑:
https://mp.weixin.qq.com/debug/wxadoc/introduction/index.html
第二步:打開開發(fā)者工具,可以看到自動(dòng)生成的項(xiàng)目目錄竟痰,個(gè)項(xiàng)目里邊生成了不同類型的文件:
1签钩、.json 后綴的 JSON 配置文件(其實(shí)就是對(duì)當(dāng)前小程序的全局配置,包括了小程序的所有頁面路徑坏快、界面表現(xiàn)铅檩、網(wǎng)絡(luò)超時(shí)時(shí)間、底部 tab 等)
2莽鸿、.wxml 后綴的 WXML 模板文件(其實(shí)也就是我們平時(shí)用到的html文件)
3昧旨、.wxss 后綴的 WXSS 樣式文件(其實(shí)也就是我們平時(shí)用到的css文件)
4、.js 后綴的 JS 腳本邏輯文件(其實(shí)也就是我們平時(shí)用到的js文件)
WXML 模板分析:
從事過網(wǎng)頁編程的人知道祥得,網(wǎng)頁編程采用的是 HTML + CSS + JS 這樣的組合兔沃,其中 HTML 是用來描述當(dāng)前這個(gè)頁面的結(jié)構(gòu),CSS 用來描述頁面的樣子级及,JS 通常是用來處理這個(gè)頁面和用戶的交互乒疏。同樣道理,在小程序中也有同樣的角色饮焦,其中 WXML 充當(dāng)?shù)木褪穷愃?HTML 的角色缰雇,和 HTML 非常相似入偷,有標(biāo)簽、屬性等等構(gòu)成械哟。但是也有很多不一樣的地方疏之,我們來一一闡述一下:
1、標(biāo)簽名字有點(diǎn)不一樣 往往寫 HTML 的時(shí)候暇咆,經(jīng)常會(huì)用到的標(biāo)簽是 div, p, span锋爪,開發(fā)者在寫一個(gè)頁面的時(shí)候可以根據(jù)這些基礎(chǔ)的標(biāo)簽組合出不一樣的組件,例如日歷爸业、彈窗等等其骄。換個(gè)思路,既然大家都需要這些組件扯旷,為什么我們不能把這些常用的組件包裝起來拯爽,大大提高我們的開發(fā)效率。 從上邊的例子可以看到钧忽,小程序的 WXML 用的標(biāo)簽是 view, button, text 等等毯炮,這些標(biāo)簽就是小程序給開發(fā)者包裝好的基本能力,我們還提供了地圖耸黑、視頻桃煎、音頻等等組件能力 更多詳細(xì)的組件講述參考下個(gè)章節(jié)?小程序的能力
2、多了一些 wx:if 這樣的屬性以及 {{ }} 這樣的表達(dá)式 在網(wǎng)頁的一般開發(fā)流程中大刊,我們通常會(huì)通過 JS 操作 DOM (對(duì)應(yīng) HTML 的描述產(chǎn)生的樹)为迈,以引起界面的一些變化響應(yīng)用戶的行為。例如缺菌,用戶點(diǎn)擊某個(gè)按鈕的時(shí)候葫辐,JS 會(huì)記錄一些狀態(tài)到 JS 變量里邊,同時(shí)通過 DOM API 操控 DOM 的屬性或者行為伴郁,進(jìn)而引起界面一些變化耿战。當(dāng)項(xiàng)目越來越大的時(shí)候,你的代碼會(huì)充斥著非常多的界面交互邏輯和程序的各種狀態(tài)變量蛾绎,顯然這不是一個(gè)很好的開發(fā)模式,因此就有了 MVVM 的開發(fā)模式(例如 React, Vue)鸦列,提倡把渲染和邏輯分離租冠。簡(jiǎn)單來說就是不要再讓 JS 直接操控 DOM,JS只需要管理狀態(tài)即可薯嗤,然后再通過一種模板語法來描述狀態(tài)和界面結(jié)構(gòu)的關(guān)系即可顽爹。 小程序的框架也是用到了這個(gè)思路,如果你需要把一個(gè) Hello World 的字符串顯示在界面上骆姐。 WXML 是這么寫 :
????????????????????????<text></text>
????????????????????????<view class="container"></view>
WXSS 樣式分析:
微信小程序中镜粤,WXSS 在底層支持新的尺寸單位 rpx 捏题,因?yàn)檫@樣開發(fā)者可以免去換算的煩惱,只要交給小程序底層來換算即可肉渴。
.container {
????? height: 100%;
????? display: flex;
????? flex-direction: column;
? ????align-items: center;
????? justify-content: space-between;
????? padding: 200rpx 0;
????? box-sizing: border-box;
}
JS 交互邏輯分析:
一個(gè)服務(wù)僅僅只有界面展示是不夠的公荧,還需要和用戶做交互:響應(yīng)用戶的點(diǎn)擊、獲取用戶的位置等等同规。在小程序里邊循狰,我們就通過編寫 JS 腳本文件來處理用戶的操作。
WXML里面寫:
??<view>{{msg}}</view>
<button bindtap="clickMe">點(diǎn)擊我<button>
js里面寫:
Page({
?????????????clickMe:function(){
????????????????????this.setData({ msg:"Hello World"})?
?????????????}
})
打開微信開發(fā)者工具券勺,里面有模擬器绪钥,編輯器,調(diào)試器关炼,也可以在手機(jī)上直接觀看頁面的樣子程腹,下圖是頁面的首頁:
在微信開發(fā)者工具里,自己動(dòng)手操作一下吧儒拂,這樣記憶更深刻寸潦。