1.學習基礎
微信小程序是運行在微信環境中的應用,它只能在微信中運行,不能運行在瀏覽器等其他環境中,微信團隊提供了專門的開發工具用於微信小程序的開發,還提供了豐富的API,讓我們的小程序能夠具備與手機設備和微信交互的能力,比如,獲取攝像頭拍照、訪問文件系統等,那么與微信交互主要體現在以下三個方面:
1、獲取當前登錄微信的用戶的用戶信息;
2、微信支付;
3、使用模板消息向微信發送通知消息。
開發微信小程序需要具備一定的前端基礎知識,但不是全部,前端三大基礎是:html、css、javascript,那么在微信小程序中html是用不到了的,因為它用wxml代替了html這一自創語言代替了html,雖然原理類似,但是卻比html簡單了很多,這個簡單主要體現在標簽的簡化和規范。剩下的2個基礎,一個是CSS,一個是javascript,先說CSS,微信小程序中用wxss替代CSS,但是這個wxss基本與CSS類似,只不過它添加了幾個自身的屬性。而javascript也沒有在瀏覽器中使用那么復雜,這里只用到了javascript的核心。 總言之,開發微信小程序需要具備 wxml、wxss(css)、javascript核心的能力。
1.學習幫助
(1)官方文檔:微信小程序開發文檔鏈接為:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下圖:
(2)微信小程序全套視頻教程下載地址:http://pan.baidu.com/s/1gf1KLEj
2.環境搭建
第一步:下載微信小程序開發者工具並安裝,下載路徑:
https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html
進到下載界面后,根據自己的操作系統選擇相應的鏈接進行下載,下載完成后進行安裝。
第二步:登錄工具
開發者工具安裝完成后我們就可以將其打開,初次打開會需要用微信掃碼登錄,入下圖,用手機微信掃一掃后確認登錄就可以了。
第三步:創建一個項目
登錄成功后,如果是第一次使用該工具會彈出創建項目的窗口,如下圖:
在創建過程中,如果選擇的本地文件夾是個空文件夾會出來一個勾選項“在當前目錄中創建quick start項目”,為方便初學者了解微信小程序的基本代碼結構,請勾選此項,勾選后,開發者工具會幫助我們在開發目錄里生成一個簡單的 demo,如下圖:
第四步:項目代碼結構解釋
點擊開發者工具左側導航的“編輯”,我們可以看到這個項目,已經初始化並包含了一些簡單的代碼文件。最關鍵也是必不可少的,是 app.js、app.json、app.wxss 這三個。其中,.js后綴的是腳本文件,.json后綴的文件是配置文件,.wxss后綴的是樣式表文件。微信小程序會讀取這些文件,並生成小程序實例。
3.目錄結構
下面我們簡單了解這三個文件的功能,方便修改以及從頭開發自己的微信小程序。
1、app.js是小程序的腳本代碼。我們可以在這個文件中監聽並處理小程序的生命周期函數、聲明全局變量。調用框架提供的豐富的 API,如本例的同步存儲及同步讀取本地數據。
Console.log(‘打印日志信息,在console中可見!’);
2、app.json 是對整個小程序的全局配置。我們可以在這個文件中配置小程序是由哪些頁面組成,配置小程序的窗口背景色,配置導航條樣式,配置默認標題。注意該文件不可添加任何注釋。
3、app.wxss 是整個小程序的公共樣式表。我們可以在頁面組件的 class 屬性上直接使用 app.wxss 中聲明的樣式規則。
我們注意到,在實例程序的代碼中還有2個文件夾,一個是pages,一個是utils,其中utils是放通用工具類方法的一個文件夾,pages是存放所有頁面的文件夾。我們着重講一下這個pages.
4.文件構成
在這個示例中,我們有兩個頁面,index 頁面和 logs 頁面,即歡迎頁和小程序啟動日志的展示頁,他們都在 pages 目錄下。微信小程序中的每一個頁面的【路徑+頁面名】都需要寫在 app.json 的 pages 中,且 pages 中的第一個頁面是小程序的首頁。
每一個小程序頁面是由同路徑下同名的四個不同后綴文件的組成,如:index.js、index.wxml、index.wxss、index.json。.js后綴的文件是腳本文件,.json后綴的文件是配置文件,.wxss后綴的是樣式表文件,.wxml后綴的文件是頁面結構文件。
index.wxml 是頁面的結構文件:
<!--index.wxml--> <view class="container"> <view bindtap="bindViewTap" class="userinfo"> <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image> <text class="userinfo-nickname">{{userInfo.nickName}}</text> </view> <view class="usermotto"> <text class="user-motto">{{motto}}</text> </view> </view>
本例中使用了<view/>、<image/>、<text/>來搭建頁面結構,綁定數據和交互處理函數。
index.js 是頁面的腳本文件,在這個文件中我們可以監聽並處理頁面的生命周期函數、獲取小程序實例,聲明並處理數據,響應頁面交互事件等。
//index.js //獲取應用實例
var app = getApp() Page({ data: { motto: 'Hello World', userInfo: {} }, //事件處理函數 bindViewTap: function() { wx.navigateTo({ url: '../logs/logs' }) }, onLoad: function () { console.log('onLoad') var that = this //調用應用實例的方法獲取全局數據 app.getUserInfo(function(userInfo){ //更新數據 that.setData({ userInfo:userInfo }) }) } })
index.wxss 是頁面的樣式表:
/**index.wxss**/ .userinfo { display: flex; flex-direction: column; align-items: center; } .userinfo-avatar { width: 128rpx; height: 128rpx; margin: 20rpx; border-radius: 50%; } .userinfo-nickname { color: #aaa; } .usermotto { margin-top: 200px; }
頁面的樣式表是非必要的。當有頁面樣式表時,頁面的樣式表中的樣式規則會層疊覆蓋 app.wxss 中的樣式規則。如果不指定頁面的樣式表,也可以在頁面的結構文件中直接使用 app.wxss 中指定的樣式規則。
index.json 是頁面的配置文件:
頁面的配置文件是非必要的。當有頁面的配置文件時,配置項在該頁面會覆蓋 app.json 的 window 中相同的配置項。如果沒有指定的頁面配置文件,則在該頁面直接使用 app.json 中的默認配置。
logs 的頁面結構
<!--logs.wxml--> <view class="container log-list"> <block wx:for-items="{{logs}}" wx:for-item="log"> <text class="log-item">{{index + 1}}. {{log}}</text> </block> </view>
logs 頁面使用 <block/> 控制標簽來組織代碼,在 <block/> 上使用 wx:for-items 綁定 logs 數據,並將 logs 數據循環展開節點
//logs.js var util = require('../../utils/util.js') Page({ data: { logs: [] }, onLoad: function () { this.setData({ logs: (wx.getStorageSync('logs') || []).map(function (log) { return util.formatTime(new Date(log)) }) }) } })
運行結果如下:
5.手機預覽
(只有獲得AppId的才有權限預覽)開發者工具左側菜單欄選擇"項目",點擊"預覽",掃碼后即可在微信客戶端中體驗。
6.開發須知
以上是微信小程序前端開發的基本流程,而實際上要做一個內容可以更新的小程序,單有前端開發是遠遠不夠的,還需要后台開發。后台開發與web開發的后台基本無異,可以選擇用java、php、nodejs等任一語言,有一點需要注意的是小程序后台服務器必須是https協議的,這就要求必須購買雲服務器並將后台服務器設置成https服務。而做這些的前提是要先購買好服務器和域名。服務器可以選擇騰訊雲服務器,購買地址如下:http://www.qcloud.com/redirect.php?redirect=1001&cps_key=f5993d572d5539c3c9ff8dbc9f62d2d9
要做一個可更新的小程序單有雲服務器也還是不夠,因為內容是可更新的,所以實際在小程序上看到的內容,我們大部分是存儲在數據庫中,所以我們還需要購買雲數據庫,這個騰訊雲也有提供,購買地址如下:http://www.qcloud.com/redirect.php?redirect=1003&cps_key=f5993d572d5539c3c9ff8dbc9f62d2d9
而域名的購買,騰訊雲也可以提供,購買地址:https://dnspod.qcloud.com/?from=qcloudHpHeaderDnspod&fromSource=qcloudHpHeaderDnspod