版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】微信小程序中基礎(chǔ)入門的示例分析
這篇文章主要為大家展示了“微信小程序中基礎(chǔ)入門的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓在下帶領(lǐng)大家一起研究并學(xué)習(xí)一下“微信小程序中基礎(chǔ)入門的示例分析”這篇文章吧。微信小程序(下面簡稱小程序)近些月來刷爆了我們這些程序猿們的圈子,可以說無數(shù)的程序猿磨刀霍霍,準(zhǔn)備在這快蛋糕上殺出一片天地。那么作為前端開發(fā)人員,小程序開發(fā)和我們平常的開發(fā)有什么不同的地方呢?讓我們一起來走進門里看看。我們從下面幾個方向來了解一下小程序的開發(fā):1.開發(fā)工具2.布局差異3.JS差異4.其它序先看一張小程序初始化的目錄:小程序包含一個描述整體程序的app和多個描述各自頁面的page。一個小程序主體部分由三個文件組成,必須放在項目的根目錄,如下:app.js、app.json、app.wxss;一個小程序頁面由四個文件組成,分別是:js、wxml、wxss、json。詳情傳送門請戳-->/debug/wxadoc/dev/framework/structure.html?t=20161107一、開發(fā)工具微信提供了一款'微信開發(fā)者工具‘,可以直接在小程序的官網(wǎng)下載(/debug/wxadoc/dev/devtools/download.html?t=20161107)。微信開發(fā)者工具集成了開發(fā)調(diào)試、代碼編輯及程序發(fā)布。關(guān)于工具本身沒什么好介紹的,用了一段時間,從代碼編輯的習(xí)慣來說,比較類似sublimetext3,各種特性也都和st3相差不大,估計也是內(nèi)置了emmet,上手還是比較輕松的。需要注意一點的問題是在使用微信開發(fā)者工具時,要習(xí)慣使用”編譯“功能,有的人會遇到自己在編輯器里明明修改了某些地方,但是頁面里卻沒有發(fā)生變化,這個時候其實只需要重新編譯一次,就妥妥的解決了。同時,遇到一些奇怪問題的時候,也不妨清理一下緩存,也許會有意外收獲。二、布局差異1.標(biāo)簽小程序的標(biāo)簽和我們習(xí)慣的p,p,span等標(biāo)簽有較大的差異,小程序里完全取消了這些我們所熟悉標(biāo)簽,取而代之的標(biāo)簽又被叫做組件,分別是視圖容器、基礎(chǔ)內(nèi)容、表單組件、操作反饋(將會廢棄,改為API)、導(dǎo)航、媒體組件、地圖和畫布這八類。(傳送門:/debug/wxadoc/dev/component/?t=20161107)組件的用法和標(biāo)簽一樣,比如view組件<view></view>、text組件<text></view>。從寫法上看起來和標(biāo)簽寫法沒什么區(qū)別,但是這些組件和標(biāo)簽最大的區(qū)別就是,組件本身設(shè)置了樣式,比如icon組件:
<view
class="group">
<block
wx:for="{{iconSize}}">
<icon
type="success"
size="{{item}}"></icon>
</block>
</view>我們只需要使用icon組件,不需要去自己設(shè)置樣式就可以得到對應(yīng)的icon樣式。在日常小程序開發(fā)中,比較常用的組件有view和text,其中用的最多的就是view,view本身并沒有默認(rèn)太多的樣式,只有一個display:block樣式,所以在我看來view就類似于p,我們也就把它當(dāng)作p來使用就行了,然后你就會發(fā)現(xiàn)布局的時候到處都是view~,就像下圖:滿眼全是view這種寫法不需要像html一樣考慮語義、seo神馬的,非常的簡單粗暴~。額外提一下text組件,text擁有view所沒有的一個特性就是text組件內(nèi)的文本可以被復(fù)制、可以被復(fù)制、可以被復(fù)制(重要的事情說三遍~)。如果你希望某段文本可以被復(fù)制,那么你只能使用text組件。同時需要注意的一點,text組件內(nèi)部不能嵌套view組件!嵌套無效!2.樣式如果說html的標(biāo)簽發(fā)生了較大變化的話,那么css則幾乎是沒有什么變化,這意味著我們可以非??焖俚脑谛〕绦蚶镏貥?gòu)我們的移動端網(wǎng)頁(直接把樣式拷貝過來即可)。但是有幾點問題我們需要注意下:1.小程序引入了新的單位rpx:可以根據(jù)屏幕寬度進行自適應(yīng)。規(guī)定屏幕寬為750rpx。如在iPhone6上,屏幕寬度為375px,共有750個物理像素,則750rpx=375px=750物理像素,1rpx=0.5px=1物理像素。2.不支持less、sass等寫法3.不支持不支持級聯(lián)選擇器,例如:.test:nth-child(2)、.test:last-child等4.支持::before和::after注:想了解更多請戳-->/debug/wxadoc/dev/framework/view/wxss.html?t=20161107二、JS差異雖然小程序的交互采用的是js的語法,但是最大的變化就在于小程序無法使用選擇器獲取到頁面的某個'dom'(應(yīng)該不叫dom),這也是我們前端人員需要思路轉(zhuǎn)變的地方,以往我們習(xí)慣于獲取某個dom,然后這個dom上綁定各種事件,同時對頁面進行一些改變操作,但是小程序并沒有提供這種我們習(xí)慣的方法。不能獲取dom,也不能直接操作dom,那我們該怎么寫呢?1.bind和catchbind和catch的作用從字面意思就可以大致猜出是用來綁定某些東西的,沒錯,這是小程序提供綁定事件的兩個方法,而他們的區(qū)別在于bind不阻止冒泡,而catch阻止冒泡。小程序不提供獲取dom的操作,而是讓我們直接將事件綁定寫入到組件內(nèi),如下代碼:<view
id="tapTest"
data-hi="WeChat"
bindtap="tapName">
Click
me!
</view>看到這大家可能發(fā)現(xiàn)了bind后面跟著一個tap,這個tap是什么東東?2.taptap其實就是一個事件,你可以理解為click,不過在手機端叫做tap,其它的事件還有:touchstart、touchmove、touchcancel、touchend、longtap。bindtap=”tapName”組合起來就是綁定個tap事件,tapName則是對應(yīng)的方法名,在這里需要注意一點,調(diào)用方法時不能夠使用tapName(“txt”)這種形式來傳參,小程序不支持。那么如果我們想要給方法傳遞一些參數(shù)該怎么做呢?接著往下看。3.event我們先看一段代碼:Page({
tapName:
function(event)
{
console.log(event)
}
})打印出來的結(jié)果:{
"type":"tap",
"timeStamp":895,
"target":
{
"id":
"tapTest",
"dataset":
{
"hi":"WeChat"
}
},
"currentTarget":
{
"id":
"tapTest",
"dataset":
{
"hi":"WeChat"
}
},
"detail":
{
"x":53,
"y":14
},
"touches":[{
"identifier":0,
"pageX":53,
"pageY":14,
"clientX":53,
"clientY":14
}],
"changedTouches":[{
"identifier":0,
"pageX":53,
"pageY":14,
"clientX":53,
"clientY":14
}]
}看到這么一堆東西大家可能有點暈,沒事,我們來捋一捋。這個event想來大家應(yīng)該明白是什么,event包含了目標(biāo)對象的相關(guān)信息。那意味著,我們只要去修改目標(biāo)對象的相關(guān)信息,就可以給tapName方法傳輸參數(shù)了。那么如何修改目標(biāo)對象的相關(guān)信息呢?在這之前我們必須要先了解下currentTarget和target兩個屬性,前者是綁定事件的組件,后者是觸發(fā)事件的組件源。理解清楚這兩個屬性很重要!如果是上面例子這種情況,只有一個view組件,那么這兩個屬性的值沒什么區(qū)別,但是如果換成下面的這個例子,就不一樣了:<view
id="tap1"
data-hi="綁定組件"
bindtap="tapName">
<view
id="tap2"
data-hi="觸發(fā)組件源"></view>
</view>我們再輸出看看(為了方便對比,只保留下currentTarget和target兩個屬性):{
"target":
{
"id":
"tap2",
"dataset":
{
"hi":"觸發(fā)組件源"
}
},
"currentTarget":
{
"id":
"tap1",
"dataset":
{
"hi":"綁定組件"
}
}
}通過這個例子就可以很清楚的發(fā)現(xiàn),currentTarget對應(yīng)的就是外層綁定了tapName方法的view組件,而target對應(yīng)的則是內(nèi)部的view組件。通過兩個例子,相信大家也注意到了兩個屬性,data-hi和dataset,這兩個屬性有什么關(guān)系呢?大家應(yīng)該猜到了,dataset的值其實就是我們設(shè)置的data-xxx的值,而xxx則是dataset里面的key。大家對于data-xxx的寫法應(yīng)該不陌生,就是html中常見的自定義屬性的寫法,而在小程序中,則被用來傳參。4.改變樣式前面就提到了小程序并不提供獲取和操作dom的能力,這就又帶來了一個問題,我們?nèi)绾稳討B(tài)的改變樣式呢?我們先看下例子:<view
class="container"
style="overflow:
{{screenType?'hidden':'scroll-y'}}"
bindtap="bindType">
Page({
data:
{
screenType:
''
},
bindType:
function(){
this.setData({
screenType:
'1'
})
}
})</view>大家是不是有點明白了呢,我們沒有辦法直接獲取dom然后去改變他的樣式,所以我們只能通過data里的屬性來控制樣式的變化,如上面的代碼,overflow的值取決于screenType的值是否存在,如果存在,則overflow:hidden,反之overflow:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省南陽市鎮(zhèn)平縣2025-2026學(xué)年第一學(xué)期期末考試七年級歷史試卷(含答案)
- 安徽省六安部分學(xué)校2025-2026學(xué)年八年級上學(xué)期期末物理教學(xué)質(zhì)量檢測題(含答案)
- 2025-2026學(xué)年第一學(xué)期七年級英語新人教版期末綜合知識檢測試題(含答案)
- 企業(yè)員工培訓(xùn)與技能發(fā)展目標(biāo)路徑職業(yè)制度
- 老年終末期患者共病管理的心理支持護理策略
- 教育領(lǐng)域成績預(yù)測的實施綱要
- 2025-2026學(xué)年統(tǒng)編版小學(xué)道德與法治五年級第二學(xué)期教學(xué)計劃及進度表
- 2026年大學(xué)生心理健康知識競賽題庫及答案(共220題)
- 第三版教材高級人力資源管理師一級考點梳理含頁數(shù)符號
- 2025年惠州市仲愷技工學(xué)校招聘考試真題
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫及參考答案詳解1套
- 思政教師培訓(xùn)心得課件
- 2025年廣東省生態(tài)環(huán)境廳下屬事業(yè)單位考試真題附答案
- 2026年安徽省公務(wù)員考試招錄7195名備考題庫完整參考答案詳解
- 【地理】期末模擬測試卷-2025-2026學(xué)年七年級地理上學(xué)期(人教版2024)
- LoRa技術(shù)教學(xué)課件
- 統(tǒng)籌發(fā)展與安全課件
- 弱電項目實施管理方案
- 2025年山西省公務(wù)員考試《申論》試題及答案解析(縣鄉(xiāng)卷)
- 2025年法考客觀題真題回憶版(含答案)
- 2025中央廣播電視總臺招聘144人筆試歷年題庫附答案解析
評論
0/150
提交評論