知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
微信小程序開發(fā)總結(jié)
發(fā)表時(shí)間:2021-3-31
發(fā)布人:葵宇科技
瀏覽次數(shù):54
微信小程序出來也有一段時(shí)間了,之前也陸續(xù)做過demo練練手,畢竟自己的demo還是比較簡單的,如今參與公司的項(xiàng)目也是一路踩坑而來。
認(rèn)識小程序
語言及開發(fā)工具
首先,小程序類Web,但不同于我所認(rèn)識的HTML,他有屬于自己的開發(fā)語言及工具:
- JavaScript: 微信小程序的 JavaScript 運(yùn)行環(huán)境即不是 Browser 也不是 Node.js。它運(yùn)行在微信 App 的上下文中,不能操作 Browser context 下的 DOM,也不能通過 Node.js 相關(guān)接口訪問操作系統(tǒng) API。
- WXML: 作為微信小程序的展示層,并不是使用 Html,而是自己發(fā)明的基于 XML 語法。
- WXSS: 用來修飾展示層的樣式。官方的描述是 “ WXSS (WeiXin Style Sheets) 是一套樣式語言,用于描述 WXML 的組件樣式。WXSS 用來決定 WXML 的組件應(yīng)該怎么顯示?!?/li>
- 小程序開發(fā)工具,開發(fā)者可以完成小程序的 API 和頁面的開發(fā)調(diào)試、代碼查看和編輯、小程序預(yù)覽和發(fā)布等功能。
入口文件
小程序主要包含以下三個(gè)入口文件:
- app.js 這個(gè)文件是整個(gè)小程序的入口文件,我們主要做了網(wǎng)絡(luò)檢測、用戶信息獲取等;當(dāng)讓也可以注入公用的方法在其他頁面中去通過
getApp()
調(diào)用(注:頁面中調(diào)用app.js中的方法時(shí)不需要通過require
或者import
引入) - app.json 這個(gè)文件可以對小程序進(jìn)行全局配置,決定頁面文件的路徑、整體窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、設(shè)置多tab等.
- app.wxss 是小程序的公共樣式表
項(xiàng)目開發(fā)
本次項(xiàng)目只負(fù)責(zé)了首頁、授權(quán)和一些公共模塊的開發(fā),接下來就著重從這些模塊展開。
生命周期
當(dāng)然,微信小程序和其他前端框架類似也是有生命周期的:
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載(像首頁數(shù)據(jù)請求可以放在這里)
*/
onLoad: function (options) {},
/**
* 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
*/
onReady: function () {},
/**
* 生命周期函數(shù)--監(jiān)聽頁面顯示
*/
onShow: function () {},
/**
* 生命周期函數(shù)--監(jiān)聽頁面隱藏
*/
onHide: function () {},
/**
* 生命周期函數(shù)--監(jiān)聽頁面卸載
*/
onUnload: function () {},
/**
* 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動作(這里添加了下拉刷新的功能)
*/
onPullDownRefresh: function () {},
/**
* 頁面上拉觸底事件的處理函數(shù)
*/
onReachBottom: function () {},
/**
* 用戶點(diǎn)擊右上角分享
*/
onShareAppMessage: function () {}
})
當(dāng)我們在 data
中初始化的值需要修改時(shí),可在各生命周期及方法中通過 setData()
修改。由于小程序的入口頁面就是首頁,在首頁添加了用戶登陸和網(wǎng)絡(luò)狀態(tài)的檢測在 onLoad
中。
tabBar
tabBar即小程序的底部導(dǎo)航欄,由于微信的限制,最少2個(gè)最多5個(gè)導(dǎo)航欄,只可設(shè)置文案、圖標(biāo)。
樣式
小程序樣式采用WXSS語言(具有CSS大部分特性)。他也提供了一種新的單位rpx(可根據(jù)屏幕寬度自行適應(yīng))。官方規(guī)定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個(gè)物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素,既然這樣我們也推薦了我們設(shè)計(jì)師采用iPhone6作為設(shè)計(jì)標(biāo)準(zhǔn),即750px寬度。
但是在實(shí)際的開發(fā)過程中如果字體大小也使用rpx做單位的話,在iPhone6 Puls上顯示文字過大,影響美觀。后經(jīng)過測試采用了px做單位,即原設(shè)計(jì)稿尺寸的一半+px,這樣可以保證文字大小在各設(shè)備中保持一致。
網(wǎng)絡(luò)狀態(tài)
在官方文檔上有明確規(guī)定,本地資源是無法通過CSS獲取的,圖片的話只能使用網(wǎng)絡(luò)資源或base64方式。首頁有個(gè)需要判斷網(wǎng)絡(luò)狀態(tài)的需求,由于斷網(wǎng)情況下無法獲取網(wǎng)絡(luò)資源,最后就使用了base64的方式。
官方獲取網(wǎng)絡(luò)狀態(tài)的API是 getNetworkType
為異步接口,通過它的返回結(jié)果再進(jìn)行下一步(是顯示無網(wǎng)絡(luò)還是調(diào)用數(shù)據(jù)列表接口),說到這里大家都知該怎么辦了—— Promise
,具體封裝如下
new Promise((resolve, reject) => {
let req = wx.getNetworkType({
success: function (res) {
var networkType = res.networkType;
if (networkType === 'none') {
resolve(false)
} else {
resolve(true)
}
},
fail() {
reject(false)
}
});
})
調(diào)試
調(diào)試的時(shí)候最大的問題呢是:無論是開發(fā)者工具上還是手機(jī)上,記得先把緩存刪干凈再測。特別是開發(fā)者工具每次切換host都要清理緩存,再重新打開,而且出現(xiàn)bug的時(shí)候盡量多測幾次,進(jìn)行反復(fù)確定。不然的話,你可能會發(fā)現(xiàn),本來測好的功能又出現(xiàn)問題了,或者是本來有問題的部分又沒有問題了。
相關(guān)案例查看更多
相關(guān)閱讀
- 百度小程序公司
- 云南etc小程序
- 云南小程序開發(fā)哪家好
- 云南省建設(shè)廳網(wǎng)站
- 小程序開發(fā)課程
- 云南小程序被騙蔣軍
- 云南網(wǎng)站建設(shè)高手
- 網(wǎng)站建設(shè)靠譜公司
- 云南花農(nóng)小程序
- 汽車報(bào)廢回收管理系統(tǒng)
- 網(wǎng)站建設(shè)特性
- 云南建設(shè)廳網(wǎng)站
- 云南小程序開發(fā)費(fèi)用
- 汽車報(bào)廢管理系統(tǒng)
- 企業(yè)網(wǎng)站
- 網(wǎng)絡(luò)公司
- 汽車回收管理系統(tǒng)
- 云南網(wǎng)站建設(shè)公司排名
- 旅游網(wǎng)站建設(shè)
- 云南etc微信小程序
- 楚雄網(wǎng)站建設(shè)公司
- 模版消息
- 云南網(wǎng)站建設(shè)特性
- 做小程序被騙
- 網(wǎng)站建設(shè)開發(fā)
- 開發(fā)制作小程序
- web教程
- 網(wǎng)站排名
- 云南小程序設(shè)計(jì)
- 日歷組件