寫這個小程序例子好久了,但是一直也沒把總結的東西,寫下來,正好最近注冊了這個博客,所以把它最為第一篇文章,希望能有地方,幫到大家。
1.開發過程
第一步:
小程序包含一個描述整體程序的 app 和多個描述各自頁面的 page。主程序 app 主要由三個文件組成,分別是 app.js(小程序邏輯)、app.json(小程序公共設置)和 app.wxss(小程序公共樣式表),其中前兩個為必備文件。 app.js 這個文件是整個小程序的入口文件,開發者的邏輯代碼在這里面實現,同時在這個文件夾里面可以定義全局變量. app.json五個配置項列表.(pages(Array) , window(Object), tabBar(Object), networkTimeout(Object), debug(Boolean)),這其中networkTimeout又有四種網絡請求:1.普通HTTPS請求(wx.request) 2. 上傳文件(wx.uploadFile) 3.下載文件(wx.downloadFile) 4.WebSocket通信(wx.connectSocket),前3項都好理解,第4項是H5的一種新的協議,是可以瀏覽器與服務器雙向通信的。大家有時間可以看看http://blog.csdn.net/he90227/article/details/48576039?locationNum=10,這里面介紹的還是挺詳細的。
第二步:
第二步 我們把要用到的頁面分別建三個.js .wxml .wxss 配套的頁。 然后我們將頁面的名字要配在app.json的pages里 例如:
"pages":[
"pages/index",
"pages/bookList/bookdetails",
"pages/hot/hot",
"pages/login/login"
]
然后就可以開發了。
2.小程序開發需要注意的地方
1. 不能用 jquery也不能操作 dom
2. 部分標簽不支持,比如 h1-h6 會編譯報錯。
3.暫時沒找到解決富文本詳情頁顯示的辦法。
4.不支持外網的跳轉。
5.我們的程序可以在其他編譯器編譯,但只能在微信自帶編譯器下查看。
6.異步加載,最多並發請求為5個。
7.整個項目壓縮后不能超過1M,所以數據建議都外部加載和請求。但外部請求的大小也有限制。如果真正開發項目,需要一些緩存機制。
8.暫時不支持SVG格式的圖片。
9.微信小程序並不支持css3自定義的動畫。
10.微信小程序支持rpx;可以達到自適應。
3.根據自己的小demo,具體說說一些細節
1.項目結構
2.具體配置
1.pages 它的作用是配置小程序的頁面,這個配置項是必填的。 可以看出,每一項分別對應的都是實現文件的路徑以及他的文件名. 注意:這個配置里面的第一行配置是它的初始頁面,例如上面代碼的初始頁面就是index。
2.window 它是我們頁面上的頭,這個頭是騰訊為我們寫好的,我們可以改變它的顏色,字體,和內容,但是不能用別的頭替換。
3.tabBar 是我們可以隨意修改的,把下面導航的信息填入list中,其中iconpath為默認圖片,selectedIconPath為選中圖片樣式。
4.networkTimeout 為自定義的超時時間,當超過這個時間時,系統認為請求超時。
頁面輪播用封裝好的插件swiper,在js中配置如下:
循環用wx:for=””;來實現。 我們可以直接引用到js中的變量。{{ item.bookname }}。
scroll-view是微信小程序的一個組件,表示可滾動視圖區域。需要注意的是,使用豎向滾動時,需要給scroll-view一個固定高度,不能設置100%。
其中我們需要知道幾個屬性: 1.bindscrolltoupper:滾動到頂部/左邊,會觸發scrolltoupper事件。 2.bindscrolltolower:滾動到底部/右邊,會觸發scrolltolower事件。 3.bindscroll:滾動時觸發,event.detail總攜帶{scrollLeft,scrollTop,scrollHeight,scrollWidth,deltaX,deltaY}
1.wx.request就類似於我們熟知的ajax,是請求數據的。 跟ajax一樣,也有成功和失敗的函數。
2.wx.getSysteminfo是獲取系統信息的,其中可以獲取,手機型號,像素比,窗口的寬度和高度。這里我們就用到了窗口高度。
3.下拉刷新,在滑動到頂部時,bindscrolltoupper被調用,根據自己的業務邏輯請求即可.
4.上拉加載,在滑動到底部時,bindscrolltolower被調用,我這里是頁數加一,根據自己的業務邏輯修改,然后將獲取到的集合添加到scroll-view的數據集合里即可.
因為沒寫后台,所以這里只在js中寫死了用戶名密碼,只是測試一下登錄的過程。
因為微信小程序不支持對dom操作,所以我們獲取input內容時,要用事件event.detail.value方法。
因為微信小程序是單向數據綁定,所以我們傳數據是對data操作,在這里定義了login方法,設置islogin為true,只要我們不重新編譯,登錄狀態都不會改變,
this.setData({})就是改變{}中變量的值。 如果我們需要在多個頁面都取到登錄狀態,我們可以在app.js中,設置 globalData:{}這個是一個全局方法。 我們可以用var app = getApp() 引用app.js.
以上這些只是自己總結的一些小程序知識,希望能幫到剛接觸小程序的同學。
如有說的不對的地方,請大牛們指出並見諒。