最近微信小程序被炒得很火熱,本人也抱着試一試的態度下載了微信web開發者工具,開發工具比較簡潔,功能相對比較少,個性化設置也沒有。瞭解完開發工具以後,順便看了一下小程序的官方開發文檔,大概瞭解了小程序的開發流程和一些經常使用的API。javascript
瞭解了小程序以後,本身就有了想要作一個小demo的衝動,雖然本身對小程序尚未作過不少實踐,只是在官方例子上徘徊,可是仍是想作出點小東西。既然要作一個demo,天然須要到數據,本身有又不想獨自搭建服務端,因此在網上搜索能夠用來提供測試數據的免費api,最後我選擇了豆瓣圖書。豆瓣圖書提供的api功能比較少,加上不開放appkey申請,因此沒法操做用戶數據。只能作點簡單的圖書查詢和圖書詳細信息展現,這個demo只有兩個頁面,很是之簡單。css
demo中用到的豆瓣圖書api只有兩個,一個是圖書搜索,另外一個是獲取圖書詳情。html
GET https://api.douban.com/v2/book/search
vue
參數 | 意義 | 備註 |
---|---|---|
q | 查詢關鍵字 | q和tag必傳其一 |
tag | 查詢的tag | q和tag必傳其一 |
start | 取結果的offset | 默認爲0 |
count | 取結果的條數 | 默認爲20,最大爲100 |
返回status=200java
{ "start": 0, "count": 10, "total": 30, "books" : [Book, ...] }
GET https://api.douban.com/v2/book/:id
react
參數 | 意義 |
---|---|
:id | 圖書id |
如下是具體圖書的詳情信息,部分demo中用不到的信息省略jquery
{ "id":"1003078", "title":"小王子", "alt":"https:\/\/book.douban.com\/subject\/1003078\/", "image":"https://img3.doubanio.com\/mpic\/s1001902.jpg", "author":[ "(法)聖埃克蘇佩裏" ], "publisher":"中國友誼出版公司", "pubdate":"2000-9-1", "rating":{"max":10,"numRaters":9438,"average":"9.1","min":0}, "author_intro":"聖埃克蘇佩裏(1900-1944)1900年,瑪雅·戴斯特萊姆......", "catalog":"序言:法蘭西玫瑰\n小王子\n聖埃克蘇佩裏年表\n" }
項目取名爲DouBanBookApp,項目的結構小程序默認的結構同樣web
DouBanBookApp pages index 首頁 index.js index.wxml index.wxss detail 詳情頁 detail.js detail.wxml detail.wxss requests api.js API地址 request.js 網絡請求 utils util.js 工具 app.js app.json app.wxss
應用的主調色參考了豆瓣app的色調,採用了偏綠色。ajax
首頁頂部展現搜索輸入框,用戶輸入圖書名稱,點擊搜索按鈕,展現圖書列表。圖書可能會不少,不能一會兒所有展現,須要用到分頁,app上最多見的列表分頁就是上拉加載模式,根據小程序提供的組件中,找到了一個比較符合場景的scroll-view組件,這個組件有一個下拉到底部自動觸發的bindscrolltolower
事件。json
先製做出界面的靜態效果,以後再整合API,因爲本人對界面設計不敏感,因此隨便弄了一個粗糙的佈局,看得過去就好了,嘿嘿~~
index.wxml
<view class="search-container"> <input type="text" placeholder="輸入書名搜索"></input><icon type="search" size="20"/> </view> <scroll-view scroll-y="true" style="width:100%;position:relative;top:40px;height:200px"> <view style="text-align:center;padding-top:50rpx;"> <icon type="cancel" color="red" size="40" /> <view><text>沒有找到相關圖書</text></view> </view> <view style="text-align:center;padding-top:50rpx;"> <icon type="search" size="60" /> <view><text>豆瓣圖書</text></view> </view> <view class="header"> <text>圖書 10本圖書</text> </view> <view class="common-list"> <view class="list-item"> <view class="index-list-item"> <view class="cover"> <image class="cover-img" src="images/demo.png"></image> </view> <view class=