小程序相關(guān):
1.小程序的登錄需要請求幾次?
請求wx.login,返回code
發(fā)送code,返回openid+sessionKey
請求getuserinfo(用戶信息)
2.小程序怎樣使用自定義組件?
首先需要在 json 文件中進(jìn)行自定義組件聲明
{
"component":true
}
然后在自定義組件的 js 文件中,需要使用 Component()來注冊組件; 使用時在頁面的 json文件中進(jìn)行引用聲明。此時需要提供每個自定義組件的標(biāo)簽名和對應(yīng)的自定義組件文件路徑:
{
"usingComponents":{
"component-tag-name":"path/to/the/custom/component"
}
}
3.小程序的生命周期

onLoad() 頁面加載時觸發(fā),只會調(diào)用一次,可獲取當(dāng)前頁面路徑中的參數(shù)。
onShow() 頁面顯示/切入前臺時觸發(fā),一般用來發(fā)送數(shù)據(jù)請求;
onReady() 頁面初次渲染完成時觸發(fā), 只會調(diào)用一次,代表頁面已可和視圖層進(jìn)行交互。
onHide() 頁面隱藏/切入后臺時觸發(fā), 如底部 tab 切換到其他頁面或小程序切入后臺等。
onUnload() 頁面卸載時觸發(fā),如redirectTo或navigateBack到其他頁面時。
4.小程序是雙向數(shù)據(jù)綁定嗎?怎么更新data
不是, 用setData()更新
5.小程序本地存儲有哪些常用api?
6.wx.navigateTo和 wx.redirectTo 有什么區(qū)別,分別適用于哪些場景
使用wx.navigateTo每新開一個頁面,頁面棧大小加1,使用wx.navigateTo重復(fù)打頁面也會增加頁面棧
使用wx.redirectTo會關(guān)閉當(dāng)前頁面打開新頁面,頁面棧大小不變
對于可逆操作,使用wx.navigateTo,比如從首頁跳轉(zhuǎn)到二級頁面,從二級頁面返回是不需要重新渲染首頁
對于不可逆操作,使用wx.redirectTo,比如用戶登錄成功后,關(guān)閉登錄頁面,不能返回到登錄界面。
不要在首頁使用wx.redirectTo,這樣會導(dǎo)致應(yīng)用無法返回首頁
7.簡單描述下微信小程序的相關(guān)文件類型?
微信小程序項目結(jié)構(gòu)主要有四個文件類型,如下:
WXML (WeiXin Markup Language)是框架設(shè)計的一套標(biāo)簽語言,結(jié)合基礎(chǔ)組件、事件系統(tǒng),可以構(gòu)建出頁面的結(jié)構(gòu)。內(nèi)部主要是微信自己定義的一套組件。
WXSS (WeiXin Style Sheets)是一套樣式語言,用于描述 WXML 的組件樣式
js 邏輯處理,網(wǎng)絡(luò)請求
json 小程序設(shè)置,如頁面注冊,頁面標(biāo)題及tabBar。
app.json 必須要有這個文件,如果沒有這個文件,項目無法運行,因為微信框架把這個作為配置文件入口,整個小程序的全局配置。包括頁面注冊,網(wǎng)絡(luò)設(shè)置,以及小程序的window背景色,配置導(dǎo)航條樣式,配置默認(rèn)標(biāo)題。
app.js 必須要有這個文件,沒有也是會報錯!但是這個文件創(chuàng)建一下就行 什么都不需要寫以后我們可以在這個文件中監(jiān)聽并處理小程序的生命周期函數(shù)、聲明全局變量。
app.wxss 全局樣式
8.你使用過哪些方法,來提高微信小程序的應(yīng)用速度?
提高頁面加載速度
用戶行為預(yù)測
減少默認(rèn)data的大小
組件化方案
9.小程序與原生App哪個好?
小程序除了擁有公眾號的低開發(fā)成本、低獲客成本低以及無需下載等優(yōu)勢,在服務(wù)請求延時與用戶使用體驗是都得到了較大幅度 的提升,使得其能夠承載跟復(fù)雜的服務(wù)功能以及使用戶獲得更好的用戶體驗。
10.分析下微信小程序的優(yōu)劣勢?
優(yōu)勢
無需下載,通過搜索和掃一掃就可以打開。
良好的用戶體驗:打開速度快。
開發(fā)成本要比App要低。
安卓上可以添加到桌面,與原生App差不多。
為用戶提供良好的安全保障。小程序的發(fā)布,微信擁有一套嚴(yán)格的審查流程, 不能通過審查的小程序是無法發(fā)布到線上的。
劣勢
限制較多。頁面大小不能超過1M。不能打開超過5個層級的頁面。
樣式單一。小程序的部分組件已經(jīng)是成型的了,樣式不可以修改。例如:幻燈片、導(dǎo)航。
推廣面窄,不能分享朋友圈,只能通過分享給朋友,附近小程序推廣。其中附近小程序也受到微信的限制。
依托于微信,無法開發(fā)后臺管理功能。
11.微信小程序與H5的區(qū)別?
運行環(huán)境不同;傳統(tǒng)的HTML5的運行環(huán)境是瀏覽器,包括webview,而微信小程序的運行環(huán)境并非完整的瀏覽器,是微信開發(fā)團(tuán)隊基于瀏覽器內(nèi)核完全重構(gòu)的一個內(nèi)置解析器,針對小程序?qū)iT做了優(yōu)化,配合自己定義的開發(fā)語言標(biāo)準(zhǔn),提升了小程序的性能。
開發(fā)成本不同;只在微信中運行,所以不用再去顧慮瀏覽器兼容性,不用擔(dān)心生產(chǎn)環(huán)境中出現(xiàn)不可預(yù)料的奇妙BUG
獲取系統(tǒng)級權(quán)限不同;系統(tǒng)級權(quán)限都可以和微信小程序無縫銜接
應(yīng)用在生產(chǎn)環(huán)境運行的流暢度;長久以來,當(dāng)HTML5應(yīng)用面對復(fù)雜的業(yè)務(wù)邏輯或者豐富的頁面交互時,它的體驗總是不盡人意,需要不斷的對項目優(yōu)化來提升用戶體驗。但是由于微信小程序運行環(huán)境獨立
12.怎么解決小程序的異步請求問題?
在回調(diào)函數(shù)中調(diào)用下一個組件的函數(shù): app.js
success: function (info) {
that.apirtnCallback(info)
}
index.js
onLoad: function () {
app.apirtnCallback = res => {
console.log(res)
}
}