前端微信小程序 常見面試題

1恕出、微信小程序有幾個文件

  • 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

2询兴、微信小程序怎樣跟事件傳值

給 HTML 元素添加 data-*屬性來傳遞我們需要的值乃沙,然后通過 e.currentTarget.datasetonloadparam參數(shù)獲取。但 data -名稱不能有大寫字母和不可以存放對象

3诗舰、小程序的 wxss 和 css 有哪些不一樣的地方警儒?

  • wxss的圖片引入需使用外鏈地址
  • 沒有 Body;樣式可直接使用 import 導(dǎo)入

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

使用 wx.getUserInfo方法 withCredentialstrue 時 可獲取 <encryptedData蜀铲,里面有 union_id。后端需要進(jìn)行對稱解密

5属百、微信小程序與vue區(qū)別

  • 生命周期不一樣记劝,微信小程序生命周期比較簡單
  • 數(shù)據(jù)綁定也不同,微信小程序數(shù)據(jù)綁定需要使用{{}}族扰,vue 直接:就可以 顯示與隱藏元素厌丑,vue中,使用 v-ifv-show
  • 控制元素的顯示和隱藏渔呵,小程序中怒竿,使用wx-ifhidden 控制元素的顯示和隱藏
  • 事件處理不同,小程序中扩氢,全用 bindtap(bind+event)耕驰,或者 catchtap(catch+event)綁定事件,vue:使用v-on:event 綁定事件,或者使用@event綁定事件
  • 數(shù)據(jù)雙向綁定也不也不一樣在 vue中,只需要再表單元素上加上 v-model,然后再綁定 data中對應(yīng)的一個值录豺,當(dāng)表單元素內(nèi)容發(fā)生變化時朦肘,data中對應(yīng)的值也會相應(yīng)改變,這是 vue非常 nice 的一點双饥。微信小程序必須獲取到表單元素厚骗,改變的值,然后再把值賦給一個 data中聲明的變量兢哭。

6领舰、小程序的雙向綁定和vue哪里不一樣

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

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

7迟螺、簡述微信小程序原理

  • 微信小程序采用 JavaScript冲秽、WXML、WXSS 三種技術(shù)進(jìn)行開發(fā),本質(zhì)就是一個單頁面應(yīng)用矩父,所有的頁面渲染和事件處理锉桑,都在一個頁面內(nèi)進(jìn)行,但又可以通過微信客戶端調(diào)用原生的各種接口
  • 微信的架構(gòu)窍株,是數(shù)據(jù)驅(qū)動的架構(gòu)模式民轴,它的 UI 和數(shù)據(jù)是分離的攻柠,所有的頁面更新,都需要通過對數(shù)據(jù)的更改來實現(xiàn)
  • 小程序分為兩個部分 webviewappService 后裸。其中 webview 主要用來展現(xiàn)UI 瑰钮,appService 有來處理業(yè)務(wù)邏輯、數(shù)據(jù)及接口調(diào)用微驶。它們在兩個進(jìn)程中運行浪谴,通過系統(tǒng)層 JSBridge 實現(xiàn)通信,實現(xiàn) UI 的渲染因苹、事件的處理

8苟耻、小程序的生命周期函數(shù)

  • onLoad 頁面加載時觸發(fā)。一個頁面只會調(diào)用一次扶檐,可以在onLoad 的參數(shù)中獲取打開當(dāng)前頁面路徑中的參數(shù)
  • onShow() 頁面顯示/切入前臺時觸發(fā)
  • onReady() 頁面初次渲染完成時觸發(fā)凶杖。一個頁面只會調(diào)用一次,代表頁面已經(jīng)準(zhǔn)備妥當(dāng)款筑,可以和視圖層進(jìn)行交互
  • onHide() 頁面隱藏/切入后臺時觸發(fā)官卡。 如 navigateTo 或底部 tab 切換到其他頁面,小程序切入后臺等
  • onUnload() 頁面卸載時觸發(fā)醋虏。如 redirectTo 或 navigateBack 到其他頁面時

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

1哮翘、提高頁面加載速度
2颈嚼、用戶行為預(yù)測
3、減少默認(rèn) data 的大小
4饭寺、組件化方案

10阻课、怎么解決小程序的異步請求問題

  • 小程序支持大部分 ES6 語法
  • 在返回成功的回調(diào)里面處理邏輯Promise異步

11、如何實現(xiàn)下拉刷新

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

12署驻、bindtap和catchtap的區(qū)別是什么

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

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

13糖埋、小程序頁面間有哪些傳遞數(shù)據(jù)的方法

1宣吱、使用全局變量實現(xiàn)數(shù)據(jù)傳遞。在 app.js 文件中定義全局變量 globalData瞳别, 將需要存儲的信息存放在里面
2征候、使用 wx.navigateTowx.redirectTo 的時候杭攻,可以將部分?jǐn)?shù)據(jù)放在 url 里面,并在新頁面onLoad的時候初始化
3疤坝、使用本地緩存Storage 相關(guān)

14兆解、小程序wxml與標(biāo)準(zhǔn)的html的異同?

相同:

  • 都是用來描述頁面的結(jié)構(gòu)卒煞;
  • 都由標(biāo)簽痪宰、屬性等構(gòu)成;

不同:

  • 標(biāo)簽名字不一樣畔裕,且小程序標(biāo)簽更少衣撬,單一標(biāo)簽更多;
  • 多了一些wx:if 這樣的屬性以及 {{ }}這樣的表達(dá)式
  • WXML僅能在微信小程序開發(fā)者工具中預(yù)覽扮饶,而HTML可以在瀏覽器內(nèi)預(yù)覽具练;
  • 組件封裝不同, WXML對組件進(jìn)行了重新封裝甜无,
  • 小程序運行在JS Core內(nèi)扛点,沒有DOM樹window對象,小程序中無法使用window對象和document對象岂丘。

15陵究、小程序簡單介紹下三種事件對象的屬性列表?

基礎(chǔ)事件(BaseEvent)

  • type:事件類型
  • timeStamp:事件生成時的時間戳
  • target:觸發(fā)事件的組件的屬性值集合
  • currentTarget:當(dāng)前組件的一些屬性集合

自定義事件(CustomEvent)

  • detail

觸摸事件(TouchEvent)

  • touches
  • changedTouches

16奥帘、小程序?qū)x:if 和 hidden使用的理解铜邮?

  • wx:if有更高的切換消耗。
  • hidden 有更高的初始渲染消耗寨蹋。
  • 因此松蒜,如果需要頻繁切換的情景下,用 hidden 更好已旧,如果在運行時條件不大可能改變則wx:if 較好秸苗。

17、微信小程序與H5的區(qū)別运褪?

  • 運行環(huán)境的不同
    傳統(tǒng)的HTML5的運行環(huán)境是瀏覽器惊楼,包括webview,而微信小程序的運行環(huán)境并非完整的瀏覽器秸讹,是微信開發(fā)團隊基于瀏覽器內(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)限的不同

18侣诺、app.json 是對當(dāng)前小程序的全局配置殖演,講述三個配置各個項的含義?

  • pages字段 —— 用于描述當(dāng)前小程序所有頁面路徑年鸳,這是為了讓微信客戶端知道當(dāng)前你的小程序頁面定義在哪個目錄趴久。
  • window字段 —— 小程序所有頁面的頂部背景顏色,文字顏色定義在這里的
  • tab字段—小程序全局頂部或底部tab

19搔确、小程序onPageScroll方法的使用注意什么彼棍?

由于此方法調(diào)用頻繁,不需要時膳算,可以去掉座硕,不要保留空方法,并且使用onPageScroll時涕蜂,盡量避免使用setData()华匾,盡量減少setData()的使用頻次。

20机隙、小程序視圖渲染結(jié)束回調(diào)蜘拉?

使用setData(data, callback),在callback回調(diào)方法中添加后續(xù)操作代碼

21有鹿、小程序同步API和異步API使用時注意事項旭旭?

wx.setStorageSync是以Sync結(jié)尾的API為同步API,使用時使用try-catch來查看異常葱跋,如果判定API為異步持寄,可以在其回調(diào)方法success、fail年局、complete中進(jìn)行下一步操作。

22咸产、簡述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch()的區(qū)別

  • wx.navigateTo():保留當(dāng)前頁面矢否,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面。但是不能跳到 tabbar 頁面
  • wx.redirectTo():關(guān)閉當(dāng)前頁面脑溢,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面僵朗。但是不允許跳轉(zhuǎn)到 tabbar 頁面
  • wx.switchTab():跳轉(zhuǎn)到 abBar 頁面,并關(guān)閉其他所有非 tabBar 頁面
  • wx.navigateBack():關(guān)閉當(dāng)前頁面屑彻,返回上一頁面或多級頁面验庙。可通過getCurrentPages() 獲取當(dāng)前的頁面棧社牲,決定需要返回幾層
  • wx.reLaunch():關(guān)閉所有頁面粪薛,打開到應(yīng)用內(nèi)的某個頁面

23、如何封裝微信小程序的數(shù)據(jù)請求的搏恤?

1违寿、將所有的接口放在統(tǒng)一的js文件中并導(dǎo)出湃交。
2、在app.js中創(chuàng)建封裝請求數(shù)據(jù)的方法藤巢。
3搞莺、在子頁面中調(diào)用封裝的方法請求數(shù)據(jù)。

24掂咒、小程序與原生App哪個好才沧?

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

25录淡、webview中的頁面怎么跳回小程序中捌木?

首先要引入最新版的jweixin-x.x.x.js,然后

wx.miniProgram.navigateTo({
  url: '/pages/login/login'+'$params'
})

26嫉戚、小程序調(diào)用后臺接口遇到哪些問題刨裆?

1.數(shù)據(jù)的大小有限制,超過范圍會直接導(dǎo)致整個小程序崩潰彬檀,除非重啟小程序帆啃;

2.小程序不可以直接渲染文章內(nèi)容頁這類型的html文本內(nèi)容,若需顯示要借住插件窍帝,但插件渲染會導(dǎo)致頁面加載變慢努潘,所以最好在后臺對文章內(nèi)容的html進(jìn)行過濾,后臺直接處理批量替換p標(biāo)簽div標(biāo)簽為view標(biāo)簽坤学,然后其它的標(biāo)簽讓插件來做疯坤,減輕前端的時間。

27深浮、webview的頁面怎么跳轉(zhuǎn)到小程序?qū)Ш降捻撁妫?/h2>

答:小程序?qū)Ш降捻撁婵梢酝ㄟ^switchTab压怠,但默認(rèn)情況是不會重新加載數(shù)據(jù)的。若需加載新數(shù)據(jù)飞苇,則在success屬性中加入以下代碼即可:

success: function (e) {
  var page = getCurrentPages().pop();
  if (page == undefined || page == null) return;
  page.onLoad();
}

webview的頁面菌瘫,則通過

wx.miniProgram.switchTab({
  url: '/pages/index/index'
 })

28、微信小程序的優(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ā)后臺管理功能飞蚓。

參考資料:csdn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滤港,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子玷坠,更是在濱河造成了極大的恐慌蜗搔,老刑警劉巖劲藐,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件八堡,死亡現(xiàn)場離奇詭異,居然都是意外死亡聘芜,警方通過查閱死者的電腦和手機兄渺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汰现,“玉大人挂谍,你說我怎么就攤上這事叔壤。” “怎么了口叙?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵炼绘,是天一觀的道長。 經(jīng)常有香客問我妄田,道長俺亮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任疟呐,我火速辦了婚禮脚曾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘启具。我一直安慰自己本讥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布鲁冯。 她就那樣靜靜地躺著拷沸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晓褪。 梳的紋絲不亂的頭發(fā)上堵漱,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音涣仿,去河邊找鬼勤庐。 笑死,一個胖子當(dāng)著我的面吹牛好港,可吹牛的內(nèi)容都是我干的愉镰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼钧汹,長吁一口氣:“原來是場噩夢啊……” “哼丈探!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拔莱,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤碗降,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后塘秦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讼渊,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年尊剔,在試婚紗的時候發(fā)現(xiàn)自己被綠了爪幻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挨稿,靈堂內(nèi)的尸體忽然破棺而出仇轻,到底是詐尸還是另有隱情,我是刑警寧澤奶甘,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布篷店,位于F島的核電站,受9級特大地震影響臭家,放射性物質(zhì)發(fā)生泄漏船庇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一侣监、第九天 我趴在偏房一處隱蔽的房頂上張望鸭轮。 院中可真熱鬧,春花似錦橄霉、人聲如沸窃爷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽按厘。三九已至,卻和暖如春钱慢,著一層夾襖步出監(jiān)牢的瞬間逮京,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工束莫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留懒棉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓览绿,卻偏偏與公主長得像策严,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饿敲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356

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