小程序相關(guān)基礎(chǔ)

小程序相關(guān):

1.小程序的登錄需要請求幾次?

  1. 請求wx.login,返回code

  2. 發(fā)送code,返回openid+sessionKey

  3. 請求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.小程序的生命周期

img
  • 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)主要有四個文件類型,如下:

  1. WXML (WeiXin Markup Language)是框架設(shè)計的一套標(biāo)簽語言,結(jié)合基礎(chǔ)組件、事件系統(tǒng),可以構(gòu)建出頁面的結(jié)構(gòu)。內(nèi)部主要是微信自己定義的一套組件。

  2. WXSS (WeiXin Style Sheets)是一套樣式語言,用于描述 WXML 的組件樣式

  3. js 邏輯處理,網(wǎng)絡(luò)請求

  4. json 小程序設(shè)置,如頁面注冊,頁面標(biāo)題及tabBar。

  5. app.json 必須要有這個文件,如果沒有這個文件,項目無法運行,因為微信框架把這個作為配置文件入口,整個小程序的全局配置。包括頁面注冊,網(wǎng)絡(luò)設(shè)置,以及小程序的window背景色,配置導(dǎo)航條樣式,配置默認(rèn)標(biāo)題。

  6. app.js 必須要有這個文件,沒有也是會報錯!但是這個文件創(chuàng)建一下就行 什么都不需要寫以后我們可以在這個文件中監(jiān)聽并處理小程序的生命周期函數(shù)、聲明全局變量。

  7. app.wxss 全局樣式

8.你使用過哪些方法,來提高微信小程序的應(yīng)用速度?

  1. 提高頁面加載速度

  2. 用戶行為預(yù)測

  3. 減少默認(rèn)data的大小

  4. 組件化方案

9.小程序與原生App哪個好?

小程序除了擁有公眾號的低開發(fā)成本、低獲客成本低以及無需下載等優(yōu)勢,在服務(wù)請求延時與用戶使用體驗是都得到了較大幅度 的提升,使得其能夠承載跟復(fù)雜的服務(wù)功能以及使用戶獲得更好的用戶體驗。

10.分析下微信小程序的優(yōu)劣勢?

優(yōu)勢
  1. 無需下載,通過搜索和掃一掃就可以打開。

  2. 良好的用戶體驗:打開速度快。

  3. 開發(fā)成本要比App要低。

  4. 安卓上可以添加到桌面,與原生App差不多。

  5. 為用戶提供良好的安全保障。小程序的發(fā)布,微信擁有一套嚴(yán)格的審查流程, 不能通過審查的小程序是無法發(fā)布到線上的。

劣勢
  1. 限制較多。頁面大小不能超過1M。不能打開超過5個層級的頁面。

  2. 樣式單一。小程序的部分組件已經(jīng)是成型的了,樣式不可以修改。例如:幻燈片、導(dǎo)航。

  3. 推廣面窄,不能分享朋友圈,只能通過分享給朋友,附近小程序推廣。其中附近小程序也受到微信的限制。

  4. 依托于微信,無法開發(fā)后臺管理功能。

11.微信小程序與H5的區(qū)別?

  1. 運行環(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),提升了小程序的性能。

  2. 開發(fā)成本不同;只在微信中運行,所以不用再去顧慮瀏覽器兼容性,不用擔(dān)心生產(chǎn)環(huán)境中出現(xiàn)不可預(yù)料的奇妙BUG

  3. 獲取系統(tǒng)級權(quán)限不同;系統(tǒng)級權(quán)限都可以和微信小程序無縫銜接

  4. 應(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) 
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容