小程序面試題

前言

首先說一些為什么總結(jié)小程序相關(guān)的面試題吧

我們可以隨便打開一個招聘網(wǎng)站苞轿,在那里你會發(fā)現(xiàn)市場對于小程序的需求還是蠻高的罗晕,有些公司可能就只需要寫小程序的前端人員

雖然小程序的開發(fā)很大一部分都是很簡單的误褪,但是有些常用的東西還是有必要了解一下的悉患。故此亭螟,有了這樣一篇小程序面試題的總結(jié)挡鞍。當然感興趣或者有需要的小伙伴也可以 點擊這里,查看完整版前端面試題

如果文章中有出現(xiàn)紕漏预烙、錯誤之處墨微,還請看到的小伙伴留言指正,先行謝過

以下 ↓

1. 簡單描述下微信小程序的相關(guān)文件類型

微信小程序項目結(jié)構(gòu)主要有四個文件類型

  • WXML(WeiXin Markup Language)是框架設(shè)計的一套標簽語言扁掸,結(jié)合基礎(chǔ)組件翘县、事件系統(tǒng)最域,可以構(gòu)建出頁面的結(jié)構(gòu)。內(nèi)部主要是微信自己定義的一套組件
  • WXSS (WeiXin Style Sheets)是一套樣式語言锈麸,用于描述 WXML 的組件樣式
  • js 邏輯處理镀脂,網(wǎng)絡(luò)請求
  • json 小程序設(shè)置,如頁面注冊忘伞,頁面標題及tabBar

主要文件

  • app.json 必須要有這個文件薄翅,如果沒有這個文件,項目無法運行氓奈,因為微信框架把這個作為配置文件入口翘魄,整個小程序的全局配置。包括頁面注冊舀奶,網(wǎng)絡(luò)設(shè)置暑竟,以及小程序的 window 背景色,配置導(dǎo)航條樣式育勺,配置默認標題
  • app.js 必須要有這個文件但荤,沒有也是會報錯!但是這個文件創(chuàng)建一下就行 什么都不需要寫以后我們可以在這個文件中監(jiān)聽并處理小程序的生命周期函數(shù)怀大、聲明全局變量
  • app.wxss 可選

2. 簡述微信小程序原理

微信小程序采用 JavaScript纱兑、WXMLWXSS 三種技術(shù)進行開發(fā),本質(zhì)就是一個單頁面應(yīng)用化借,所有的頁面渲染和事件處理潜慎,都在一個頁面內(nèi)進行,但又可以通過微信客戶端調(diào)用原生的各種接口微信的架構(gòu)蓖康,是數(shù)據(jù)驅(qū)動的架構(gòu)模式铐炫,它的 UI 和數(shù)據(jù)是分離的,所有的頁面更新蒜焊,都需要通過對數(shù)據(jù)的更改來實現(xiàn)
小程序分為兩個部分 webviewappService 倒信。其中 webview 主要用來展現(xiàn) UIappService 有來處理業(yè)務(wù)邏輯泳梆、數(shù)據(jù)及接口調(diào)用鳖悠。它們在兩個進程中運行,通過系統(tǒng)層 JSBridge 實現(xiàn)通信优妙,實現(xiàn) UI 的渲染乘综、事件的處理

3. 小程序的雙向綁定和vue哪里不一樣

小程序直接 this.data 的屬性是不可以同步到視圖的,必須調(diào)用:

this.setData({
    // 這里設(shè)置
})

4. 小程序的wxss和css有哪些不一樣的地方

WXSSCSS 類似套硼,不過在 CSS 的基礎(chǔ)上做了一些補充和修改

  • 尺寸單位 rpx

rpx 是響應(yīng)式像素,可以根據(jù)屏幕寬度進行自適應(yīng)卡辰。規(guī)定屏幕寬為 750rpx。如在 iPhone6 上,屏幕寬度為 375px九妈,共有 750 個物理像素反砌,則 750rpx = 375px = 750 物理像素

  • 使用 @import 標識符來導(dǎo)入外聯(lián)樣式。@import 后跟需要導(dǎo)入的外聯(lián)樣式表的相對路徑萌朱,用;表示語句結(jié)束
/** index.wxss **/
@import './base.wxss';

.container{
    color: red;
}

5. 小程序頁面間有哪些傳遞數(shù)據(jù)的方法

  • 使用全局變量實現(xiàn)數(shù)據(jù)傳遞

app.js 文件中定義全局變量 globalData宴树, 將需要存儲的信息存放在里面

// app.js

App({
     // 全局變量
  globalData: {
    userInfo: null
  }
})

使用的時候,直接使用 getApp() 拿到存儲的信息

  • 使用 wx.navigateTowx.redirectTo 的時候嚷兔,可以將部分數(shù)據(jù)放在 url 里面森渐,并在新頁面 onLoad 的時候初始化
//pageA.js

// Navigate
wx.navigateTo({
  url: '../pageD/pageD?name=raymond&gender=male',
})

// Redirect
wx.redirectTo({
  url: '../pageD/pageD?name=raymond&gender=male',
})

// pageB.js
...
Page({
  onLoad: function(option){
    console.log(option.name + 'is' + option.gender)
    this.setData({
      option: option
    })
  }
})

需要注意的問題:

wx.navigateTowx.redirectTo 不允許跳轉(zhuǎn)到 tab 所包含的頁面

onLoad 只執(zhí)行一次

  • 使用本地緩存 Storage 相關(guān)

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

  • onLoad 頁面加載時觸發(fā)做入。一個頁面只會調(diào)用一次冒晰,可以在 onLoad 的參數(shù)中獲取打開當前頁面路徑中的參數(shù)
  • onShow() 頁面顯示/切入前臺時觸發(fā)
  • onReady() 頁面初次渲染完成時觸發(fā)。一個頁面只會調(diào)用一次竟块,代表頁面已經(jīng)準備妥當壶运,可以和視圖層進行交互
  • onHide() 頁面隱藏/切入后臺時觸發(fā)。 如 navigateTo 或底部 tab 切換到其他頁面浪秘,小程序切入后臺等
  • onUnload() 頁面卸載時觸發(fā)蒋情。如 redirectTonavigateBack 到其他頁面時

詳見 生命周期回調(diào)函數(shù)

7. 怎么封裝微信小程序的數(shù)據(jù)請求

參考 這里

8. 哪些方法可以用來提高微信小程序的應(yīng)用速度

1、提高頁面加載速度

2耸携、用戶行為預(yù)測

3棵癣、減少默認 data 的大小

4、組件化方案

9. 微信小程序的優(yōu)劣勢

優(yōu)勢

  • 即用即走夺衍,不用安裝狈谊,省流量,省安裝時間沟沙,不占用桌面
  • 依托微信流量河劝,天生推廣傳播優(yōu)勢
  • 開發(fā)成本比 App

缺點

  • 用戶留存,即用即走是優(yōu)勢矛紫,也存在一些問題
  • 入口相對傳統(tǒng) App 要深很多
  • 限制較多,頁面大小不能超過2M赎瞎。不能打開超過10個層級的頁面

10. 怎么解決小程序的異步請求問題

小程序支持大部分 ES6 語法

  • 在返回成功的回調(diào)里面處理邏輯
  • Promise 異步

11. 小程序關(guān)聯(lián)微信公眾號如何確定用戶的唯一性

如果開發(fā)者擁有多個移動應(yīng)用、網(wǎng)站應(yīng)用颊咬、和公眾帳號(包括小程序)务甥,可通過 unionid 來區(qū)分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應(yīng)用喳篇、網(wǎng)站應(yīng)用和公眾帳號(包括小程序)敞临,用戶的 unionid 是唯一的。換句話說杭隙,同一用戶哟绊,對同一個微信開放平臺下的不同應(yīng)用,unionid 是相同的

12. 如何實現(xiàn)下拉刷新

  • 首先在全局 config 中的 window 配置 enablePullDownRefresh
  • Page 中定義 onPullDownRefresh 鉤子函數(shù),到達下拉刷新條件后,該鉤子函數(shù)執(zhí)行票髓,發(fā)起請求方法
  • 請求返回后攀涵,調(diào)用 wx.stopPullDownRefresh 停止下拉刷新

參考 這里

13. bindtap和catchtap的區(qū)別是什么

相同點:首先他們都是作為點擊事件函數(shù),就是點擊時觸發(fā)洽沟。在這個作用上他們是一樣的以故,可以不做區(qū)分

不同點:他們的不同點主要是bindtap是不會阻止冒泡事件的,catchtap是阻值冒泡的

14. 簡述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch()的區(qū)別</h5>

  • wx.navigateTo():保留當前頁面裆操,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面怒详。但是不能跳到 tabbar 頁面
  • wx.redirectTo():關(guān)閉當前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面踪区。但是不允許跳轉(zhuǎn)到 tabbar 頁面
  • wx.switchTab():跳轉(zhuǎn)到 abBar 頁面昆烁,并關(guān)閉其他所有非 tabBar 頁面
  • wx.navigateBack()關(guān)閉當前頁面,返回上一頁面或多級頁面缎岗【材幔可通過 getCurrentPages() 獲取當前的頁面棧,決定需要返回幾層
  • wx.reLaunch():關(guān)閉所有頁面传泊,打開到應(yīng)用內(nèi)的某個頁面

后記

很多東西真正做一遍鼠渺,收獲一定是最大的,那些途中踩過的坑眷细、迸發(fā)的靈性火花都是我們成長路上寶貴的東西

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拦盹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子溪椎,更是在濱河造成了極大的恐慌普舆,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件池磁,死亡現(xiàn)場離奇詭異奔害,居然都是意外死亡,警方通過查閱死者的電腦和手機地熄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門华临,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人端考,你說我怎么就攤上這事雅潭。” “怎么了却特?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵扶供,是天一觀的道長。 經(jīng)常有香客問我裂明,道長椿浓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮扳碍,結(jié)果婚禮上提岔,老公的妹妹穿的比我還像新娘。我一直安慰自己笋敞,他們只是感情好碱蒙,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夯巷,像睡著了一般赛惩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上趁餐,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天喷兼,我揣著相機與錄音,去河邊找鬼澎怒。 笑死褒搔,一個胖子當著我的面吹牛阶牍,可吹牛的內(nèi)容都是我干的喷面。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼走孽,長吁一口氣:“原來是場噩夢啊……” “哼惧辈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起磕瓷,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤盒齿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后困食,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體边翁,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年硕盹,在試婚紗的時候發(fā)現(xiàn)自己被綠了符匾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡瘩例,死狀恐怖啊胶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垛贤,我是刑警寧澤焰坪,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站聘惦,受9級特大地震影響某饰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一黔漂、第九天 我趴在偏房一處隱蔽的房頂上張望碧浊。 院中可真熱鬧,春花似錦瘟仿、人聲如沸箱锐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驹止。三九已至,卻和暖如春观蜗,著一層夾襖步出監(jiān)牢的瞬間臊恋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工墓捻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抖仅,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓砖第,卻偏偏與公主長得像撤卢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子梧兼,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

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