一.注冊小程序賬號,下載IDE
1.官網(wǎng)注冊https://mp.weixin.qq.com/,并下載IDE。
2.官方文檔一向都是較好的學習資料。
留意:
(1)注冊賬號之后會有一個appid,新建項目的時分需求填上,否則很多功用是用不了的,比方不能預覽,不能上傳代碼等等。
(2)假如你注冊過微信大眾號話,必定要留意,微信大眾號和微信小程序是兩個賬號,二者的appid也是不同,小程序開發(fā)必須運用小程序的appid哦。
二.小程序結構介紹和運行機制
1.咱們建立了“普通快速發(fā)動模板”,然后整個項目目錄如下:
2.app.js
整個項目的發(fā)動文件,如注釋寫的onlaunch辦法有三大功用,瀏覽器緩存進行存和取數(shù)據(jù);用登陸成功的回調;獲取用戶信息。
globalData是界說整個項目的大局變量或許常量哦。
3.app.json
整個項目的裝備文件,比方注冊頁面,裝備tab頁,設置整個項目的款式,頁面標題等等;
!留意:小程序發(fā)動默認的為數(shù)不多個頁面,便是app.json的pages中的為數(shù)不多個頁面哦。
4.pages
小程序的頁面組件,有幾個頁面就會有幾個子文件夾。比方快速發(fā)動模板,就有兩個頁面,index和logs
5.翻開index目錄
能夠看到有三個文件,其實和咱們web開發(fā)的文件是一一對應的。
index.wxml對應index.html;
index.wxss對應index.css;
index.js便是js文件哦。
一般咱們還會給每個頁面組件添加一個.json文件,作為該頁面組件的裝備文件,設置頁面標題等功用
6.雙擊index.js文件
(1)var app = getApp();
引入整個項目的app.js文件,用來取期中的公共變量等信息。
假如要運用util.js東西庫中的某個辦法,在util.js中module.exports導出,然后在需求的頁面中require即可得到哦。
(2)比方,咱們要獲取豆瓣電影的時分,咱們需求調用豆瓣的api;咱們先在app.js中的gloabData中界說doubanBase
然后在index.js中運用app.globaData.doubanBase即可取到這個值。
當然這些常量你也能夠在頁面需求的時分,再用寫死的值,可是為了整個項目的維護,仍是主張把這種共用參數(shù)一致寫在裝備文件中哦。
(3)接下來在整個page({})中,為數(shù)不多個data,便是本頁面組件的內部數(shù)據(jù),會烘托到該頁面的wxml文件中,類似于vue、react哦~
經(jīng)過setData修改data數(shù)據(jù),驅動頁面烘托
(4)一些生命周期函數(shù)
比方(), onready(), onshow(), onhide()等等,監(jiān)聽頁面加載、頁面初度烘托、頁面顯示、頁面躲藏等等
更多的能夠查官網(wǎng)API哦。其中用的多的便是()辦法,和onShareAppMessage()辦法(設置頁面分享的信息)
7 .wxml模板的運用。
比方本項目電影頁面,便是以小的星級點評組件wxml作為模板,star到movie到movie-list,一級一級的嵌套運用。
star-template.wxml頁面寫好name特點;然后import引入的時分經(jīng)過name取得即可
8.常用的wxml標簽
view,text,icon,swiper,block,scroll-view等等,這些標簽直接查官網(wǎng)文檔即可
三.小程序結構、各個頁面以及發(fā)布上線的留意點
1.整個結構中的一些留意點
(1)整個wxml頁面,比較底層的標簽是哦。
(2) 每個頁面頂部欄的顏色,title在本頁面的json中裝備,假如沒有裝備的話,取app.json中的總裝備哦。
(3)json中不能寫注釋哦,否則會報錯的。
(4)路由相關
1)運用wx.SwitchTab跳轉tab頁的話,在app.json中除了注冊pages頁面,還需求在tabBar中注冊tab頁,才干收效哦。
留意:tab多5個,也便是咱們說的頭部或許底部多5個菜單。其他的頁面只能經(jīng)過其他路由辦法翻開哦。
2)navigateTo是跳到某個非tab頁,比方歡迎頁,電影詳情頁,城市選擇頁;在app.json中注冊后,不能在tabBar里注冊哦,否則相同也是不能跳轉的哦。
3)reLaunch跳轉,新開的頁面左上角是沒有退回按鈕的,本項目只用了一次,切換城市的時分哦。
(5)頁面之間傳遞參數(shù)
參數(shù)寫在跳轉的url之中,然后另一個頁面在辦法中的傳參option接收到。如下傳遞和獲取id
(6)data-開頭的自界說特點的運用
比方wxml中咱們怎樣寫
點擊的事情對象能夠這么取,var postId = event.currentTarget.dataset.postid;
留意: 大寫會轉換成小寫,帶_符號會轉成駝峰方式
(7)事情對象event,event.target和event.currentTarget的差異:
target指的是當時點擊的組件 和currentTarget 指的是事情捕獲的組件。
比方,輪播圖組件,點擊事情應該要綁定到swiper上,這樣才干監(jiān)控恣意一張圖片是否被點擊,
這時target這里指的是image(因為點擊的是圖片),而currentTarget指的是swiper(因為綁定點擊事情在swiper上)
(8)運用免費的網(wǎng)絡接口:
本項目中用到了 和風氣候api,騰訊地圖api,百度地圖api,豆瓣電影api,聚合頭條新聞api等,詳細用法能夠看各自官網(wǎng)的接口文檔哦,很詳細的
留意:免費接口是有拜訪限制的,所以假如用別人的組件用了這種接口的話,較好仍是自己注冊一個新的key替換上哦
附上一個免費接口大全:
https://github.com/jokermonn/-Api
?。×硗膺€要留意,要把這些接口的域名裝備到小程序的合法域名中,否則也是拜訪不了的
(8)wxss有一個坑:無法讀取本地資源,比方背景圖片用本地就會報錯哦。
把本地圖片弄成網(wǎng)絡圖片的幾種方式: 上傳到個人網(wǎng)站;QQ空間相冊等等也是能夠的哦
2.切換城市頁面:
(1)主頁運用navigateTo跳轉到切換城市頁,由于主頁并沒有封閉,導致切換了城市返回來,氣候信息仍是舊的。
正確的處理邏輯如下:
1)運用reLaunch跳轉到切換城市頁面,實質是封閉一切頁面翻開新的頁面哦。
2)切換城市頁面,更新公共變量中城市信息為手動切換的城區(qū),再switchTab回到主頁,觸發(fā)主頁從頭加載。
3)主頁獲取城市信息的時分加一個判斷,大局沒有才取定點的,大局有(比方方才設置了)就用大局的哦。
(2)城市列表的翻滾和回到頂部
根據(jù)scroll-view組件的scroll-top特點,初始便是0,翻滾就會添加的;點擊回到頂部給它置為0即可回到頂部
3.氣候頁
(1)初始化頁面,氣候顯示的邏輯
首先調用小程序的wx.getLocation辦法取得當時的經(jīng)緯度,然后調用騰訊地圖取得當時的城市稱號和區(qū)縣稱號,并存到公共變量中,
再調用查詢氣候和空氣質量的辦法哦。
(2)容錯處理
城市的稱號長短不一,有點姓名特別長,比方巴彥淖爾市這種,需求動態(tài)的獲取完好的城市稱號;
有些偏遠的城市暫時沒有氣候信息,咱們需求對返回的成果進行判斷,沒有信息的需求給用戶一個杰出的提示信息。
4.周邊-地圖服務頁面
(1)調用百度地圖的各種服務,查詢酒店,美食,生活服務三種信息,更多信息能夠看百度地圖的文檔
(2)點擊時給被點中的圖標加個邊框,數(shù)據(jù)驅動視圖,所以運用一個長度為3的數(shù)組保存三個圖標當時是否被點中的狀況
然后wxml再根據(jù)數(shù)據(jù)來動態(tài)添加class,添加邊框款式
5.豆瓣電影頁
(1)電影詳情頁的預覽圖片,用小程序本身的previewImage完成。
(2)詳情頁運用onReachBottom()辦法,監(jiān)控用戶上拉觸底事情,然后發(fā)送懇求持續(xù)取得數(shù)據(jù),完成懶加載的效果
(3)用戶體驗方面的優(yōu)化,js中將整數(shù)評分比方7分一致改為7.0分,然后wxml模板再判斷分數(shù)是否為0顯示“暫無評分”
(4)搜索之后清空搜索框
因為小程序中不能運用getelementbyId這種方式取得元素,只能用數(shù)據(jù)來操控了
在data中加一個特點searchText來保存搜索框的內容并和 input的value特點綁定,搜索完成或許點擊X時,searchText變量清空即可完成清空輸入框的效果哦。
6.新聞頁面
(1)聚合頭條新聞的免費接口,只返回了新聞的基本信息,新聞的主體內容是沒有的哦。
我找了好多新聞類的接口,如同都是沒有新聞主體內容的。假如誰知道更好的接口歡迎留言告訴我哈~
(2)當然,也能夠自己去爬新聞網(wǎng)站的數(shù)據(jù)哦
7.更多頁面
(1)小程序目前開放外鏈的功用僅僅給公司安排的小程序開放了,個人開發(fā)仍是不能運用外鏈的哦。
(2)彩蛋頁面,取得用戶信息
經(jīng)過 wx.setStorageSync('userInfos', userInfos); 能夠取得登陸小程序的用戶的個人信息,能夠發(fā)送給后臺存到數(shù)據(jù)庫中,便利對用戶進行分析
我這里僅僅存儲到瀏覽器緩存中哦,較大應該是10M緩存;假如用戶把這個小程序從小程序列表中刪除去,就會清空這個緩存。
8.發(fā)布留意
(1) 新版本小程序發(fā)布的限制為2M,一般都是圖片占空間,所以盡量運用網(wǎng)絡圖片
詳細怎樣把本地圖片變成網(wǎng)絡圖片,上面有講哦。
(2)在開發(fā)者東西上預覽測驗沒問題,點擊上傳;網(wǎng)頁版小程序個的人中心的左邊“開發(fā)辦理”菜單,第三塊--開發(fā)版本就有了內容。
(3)點擊提交,填寫小程序相關信息,就能夠提交審閱了哦。
留意:分類較好填寫精確,這樣才干更快的經(jīng)過審閱哦。我這個小程序一天半時間過審上線的。