微信小程序面試題

1. 小程序有幾個(gè)文件恰画?

WXML: 微信自己定義的一套組件 WXSS : 用于描述 WXML 的組件樣式 js : 邏輯處理 json : 小程序頁(yè)面配置

2.小程序怎么跟隨事件傳值

在 頁(yè)面標(biāo)簽上通過(guò) 綁定 dataset-key = value , 然后綁定點(diǎn)擊通過(guò)e.currentTarget.dataset.key 來(lái)獲取標(biāo)簽上綁定的值瓷马。

<button bindtap="get"  data-name="測(cè)試"> 拿到傳值</button>

get(e){
    console.log(e.currentTarget.dataset.name)
  },

3. 小程序 WXSSCSS 的區(qū)別

WXSS

wxss 背景圖片只能引入外鏈拴还,不能使用本地圖片 小程序樣式使用 @import 引入 外聯(lián)樣式文件,地址為相對(duì)路徑欧聘。 尺寸單位為 rpx , rpx 是響應(yīng)式像素,可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)片林。

4. 小程序的雙向綁定和Vue哪里不一樣。

小程序 直接使用this.data.key = value 是 不能更新到視圖當(dāng)中的怀骤。

必須使用 this.setData({ key : value }) 來(lái)更新值费封。

5. 小程序的生命周期函數(shù)

onLoad : 頁(yè)面加載時(shí)觸發(fā)。一個(gè)頁(yè)面只會(huì)調(diào)用一次蒋伦,可以在 onLoad的參數(shù)中獲取打開(kāi)當(dāng)前頁(yè)面路徑中的參數(shù) onShow : 頁(yè)面顯示 / 切入前臺(tái)時(shí)觸發(fā)調(diào)用弓摘。 onReady : 頁(yè)面初次渲染完成時(shí)觸發(fā),一個(gè)頁(yè)面只會(huì)調(diào)用一次。 onHide : 頁(yè)面隱藏 / 切入后臺(tái)時(shí)觸發(fā)痕届,如 navigateTo 或底部tab切換到其他頁(yè)面韧献,小程序切入后臺(tái)等 onUnload : 頁(yè)面卸載時(shí)觸發(fā)。如 redirectTonavigateBack 到其他頁(yè)面時(shí).

6. 小程序怎么實(shí)現(xiàn)下拉刷新

兩種方案

方案 一 :

通過(guò)在 app.json 中研叫, 將 "enablePullDownRefresh": true, 開(kāi)啟全局下拉刷新势决。 或者通過(guò)在 組件 .json , 將 "enablePullDownRefresh": true, 單組件下拉刷新蓝撇。

方案二:

scroll-view : 使用該滾動(dòng)組件 自定義刷新果复,通過(guò) bindscrolltoupper 屬性, 當(dāng)滾動(dòng)到頂部/左邊渤昌,會(huì)觸發(fā) scrolltoupper事件虽抄,所以我們可以利用這個(gè)屬性,來(lái)實(shí)現(xiàn)下拉刷新功能独柑。

7. bindtapcatchtap 區(qū)別

相同點(diǎn): 都是點(diǎn)擊事件

不同點(diǎn): bindtap 不會(huì)阻止冒泡迈窟, catchtap 可以阻止冒泡。

8. 小程序有哪些傳遞數(shù)據(jù)的方法

\1. 使用全局變量

app.js 中的 this.globalData = { } 中放入要存儲(chǔ)的數(shù)據(jù)忌栅。 在組件.js 中车酣, 頭部 引入 const app = getApp(); 獲取到全局變量 直接使用 app.globalData.key 來(lái)進(jìn)行賦值和獲取值曲稼。

\2. 使用 路由

wx.navigateTowx.redirectTo 時(shí),可以通過(guò)在 url 后 拼接 + 變量湖员, 然后在 目標(biāo)頁(yè)面 通過(guò)在 onLoad 周期中贫悄,通過(guò)參數(shù)來(lái)獲取傳遞過(guò)來(lái)的值。

\3. 使用本地緩存

9. 簡(jiǎn)述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch() 區(qū)別

wx.navigateTo() : 保留當(dāng)前頁(yè)面娘摔,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面窄坦。但是不能跳到 tabbar 頁(yè)面 wx.redirectTo() : 關(guān)閉當(dāng)前頁(yè)面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面凳寺。但是不允許跳轉(zhuǎn)到 tabbar 頁(yè)面 wx.switchTab() : 跳轉(zhuǎn)到 TabBar 頁(yè)面鸭津,并關(guān)閉其他所有非 tabBar 頁(yè)面 wx.navigateBack() : 關(guān)閉當(dāng)前頁(yè)面,返回上一頁(yè)面或多級(jí)頁(yè)面肠缨∧媲鳎可通過(guò)getCurrentPages() 獲取當(dāng)前的頁(yè)面棧,決定需要返回幾層 wx.reLaunch() : 關(guān)閉所有頁(yè)面晒奕,打開(kāi)到應(yīng)用的某個(gè)頁(yè)面父泳。

10. 小程序 wx:ifhidden 的區(qū)別

wx:if : 有更高的切換消耗。 hidden : 有更高的初始渲染消耗吴汪。

使用

頻繁切換使用 hidden, 運(yùn)行時(shí)條件變化使用wx: if

11. app.json 全局配置文件描述

pages : 用于存放當(dāng)前小程序的所有頁(yè)面路徑 window : 小程序所有頁(yè)面的頂部背景顏色,文字顏色配置蒸眠。 tabBar : 小程序底部的Tab ,最多5個(gè)漾橙,最少2個(gè)。

12. 如何封裝小程序請(qǐng)求

封裝 wx.request 請(qǐng)求傳遞需要的參數(shù)( url , data , method , success 成功回調(diào) 楞卡, fail 失敗回調(diào) ) , 封裝常用方法 POST , GET , DELETE , PUT .... 最后導(dǎo)出這些方法 然后新建一個(gè) api.js 文件霜运,導(dǎo)入封裝好的方法,然后調(diào)取相應(yīng)的方法蒋腮,傳遞數(shù)據(jù)淘捡。

wx.request 封裝

var app = getApp(); //獲取小程序全局唯一app實(shí)例
var host = '******************'; //接口地址
 

 
//POST請(qǐng)求
function post(url, data, success,fail) {
  request(url, postData, "POST", doSuccess, doFail);
}
 
//GET請(qǐng)求
function get(url, data, success, fail) {
  request(url, postData, "GET", doSuccess, doFail);
}
 
function request(url, data, method, success, fail) {
  wx.showLoading({
    title: "正在加載中...",
  })
  wx.request({
    url: host + url, //請(qǐng)求地址
    method: method, //請(qǐng)求方法
    header: { //請(qǐng)求頭
      "Content-Type": "application/json;charset=UTF-8"
    },
    data: data, //請(qǐng)求參數(shù)    
    dataType: 'json', //返回?cái)?shù)據(jù)格式
    responseType: 'text', //響應(yīng)的數(shù)據(jù)類(lèi)型
    success: function(res) {
      wx.hideLoading();
      //成功執(zhí)行方法,參數(shù)值為res.data,直接將返回的數(shù)據(jù)傳入
      success(res.data);
    },
    fail: function() {
      //失敗執(zhí)行方法
      fail();
    },
  })
}
module.exports = {
  postRequest: post,
  getRequest: get,
}

組件使用 封裝好的請(qǐng)求

var http = require('../../utils/request.js'); //相對(duì)路徑


var params = {//請(qǐng)求參數(shù)
  id:this.data.userId
}
http.postRequest("user/delUser", params, function(res) {
  console.log("修改成功池摧!");
  
}, function(res) {
  console.log("修改失斀钩!W魍膘魄!")
})

13. 小程序運(yùn)行機(jī)制

熱啟動(dòng) :假如用戶(hù)已經(jīng)打開(kāi)了某個(gè)小程序,在一定時(shí)間內(nèi)再次打開(kāi)小程序的話竭讳,這個(gè)時(shí)候我們就不再需要重新啟動(dòng)了创葡,這需要把我們的后臺(tái)打開(kāi)的小程序切換到前臺(tái)來(lái)使用。 冷啟動(dòng):用戶(hù)首次打開(kāi)小程序或被微信主動(dòng)銷(xiāo)毀再次打開(kāi)的情況绢慢,此時(shí)小程序需要重新加載啟動(dòng)灿渴。

14. 小程序什么時(shí)候會(huì)主動(dòng)銷(xiāo)毀?

小程序在進(jìn)入后臺(tái)之后,客戶(hù)端會(huì)幫我們?cè)谝欢〞r(shí)間內(nèi)維持我們的一個(gè)狀態(tài)骚露,超過(guò)五分鐘后蹬挤,會(huì)被微信主動(dòng)銷(xiāo)毀.

官方也沒(méi)有明確說(shuō)明 什么時(shí)候銷(xiāo)毀, 在不同機(jī)型表現(xiàn)也不一樣荸百,

2019年開(kāi)發(fā)時(shí):時(shí)間官方文檔沒(méi)有說(shuō)明闻伶,但是經(jīng)過(guò)詢(xún)問(wèn)一般指5分鐘內(nèi)

2020年開(kāi)發(fā)時(shí):時(shí)間官方文檔沒(méi)有說(shuō)明,實(shí)測(cè)安卓沒(méi)有固定時(shí)間够话,內(nèi)存足夠情況下蓝翰,有時(shí)候一天了還在,有時(shí)候幾分鐘就沒(méi)了女嘲。

15. 微信授權(quán)流程

sr290vr0dw.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畜份,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子欣尼,更是在濱河造成了極大的恐慌爆雹,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愕鼓,死亡現(xiàn)場(chǎng)離奇詭異钙态,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)菇晃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)册倒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人磺送,你說(shuō)我怎么就攤上這事驻子。” “怎么了估灿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵崇呵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我馅袁,道長(zhǎng)域慷,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任汗销,我火速辦了婚禮芒粹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘大溜。我一直安慰自己化漆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布钦奋。 她就那樣靜靜地躺著座云,像睡著了一般疙赠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朦拖,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天圃阳,我揣著相機(jī)與錄音,去河邊找鬼璧帝。 笑死捍岳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的睬隶。 我是一名探鬼主播锣夹,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼苏潜!你這毒婦竟也來(lái)了银萍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤恤左,失蹤者是張志新(化名)和其女友劉穎贴唇,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體飞袋,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戳气,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巧鸭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓶您。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蹄皱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情芯肤,我是刑警寧澤巷折,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站崖咨,受9級(jí)特大地震影響锻拘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜击蹲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一署拟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧歌豺,春花似錦推穷、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蟹腾。三九已至,卻和暖如春区宇,著一層夾襖步出監(jiān)牢的瞬間娃殖,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工议谷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炉爆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓卧晓,卻偏偏與公主長(zhǎng)得像芬首,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子禀崖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容