您好,登錄后才能下訂單哦!
小編給大家分享一下基于小程序的面試題有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
小程序登錄流程
第一步:wx.login獲取 用戶臨時登錄憑證code
第二步:wx.getUserInfo獲取加密過的數據encryptedData和解密參數iv
第三步:把步驟一、二中的code、encryptedData、iv傳到開發者自己服務端 第四步:服務端獲取到code、encryptedData、iv之后用get方法請求如下微信接口 個人項目,沒有后端接口,回答了云開發中的登錄流程
小程序頁面聲明周期
● onLoad() 頁面加載時觸發,只會調用一次,可獲取當前頁面路徑中的參數。
● onShow() 頁面顯示/切入前臺時觸發,一般用來發送數據請求;
● onReady() 頁面初次渲染完成時觸發,只會調用一次,代表頁面已可和視圖層進行交互
● onHide() 頁面隱藏/切入后臺時觸發,如底部 tab 切換到其他頁面或小程序切入后臺等
● onUnload() 頁面卸載時觸發,如 redirectTo 或 navigateBack 到其他頁面時
小程序常用的框架
WeUI WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫, 由微信官方設計團隊為微信內網頁和微信小程序量身設計,令用戶的使用感知更加統一。 小程序開發中最常用到的一款框架,受廣大開發人員的歡迎。 美團小程序框架mpvue 官方介紹:mpvue是一個使用 Vue.js開發小程序的前端框架。框架基于 Vue.js核心,mpvue修改了 Vue.js的 runtime和 compiler實現,使其可以運行在小程序環境中,從而為小程序開發引入了整套Vue.js開發體驗。
組件化開發框架wepy 官方介紹:組件化開發,完美解決組件隔離,組件嵌套,組件通信等問題,支持使用第三方 npm 資源,自動處理 npm 資源之間的依賴關系,完美兼容所有無平臺依賴的 npm 資源包. 官方框架MINA 官方介紹:框架提供了自己的視圖層描述語言 WXML 和 WXSS,以及基于 JavaScript 的邏輯層框架,并在視圖層與邏輯層間提供了數據傳輸和事件系統,可以讓開發者可以方便的聚焦于數據與邏輯上。
了解微信小程序嗎?簡述小程序的原理。
微信?程序采?JavaScript、WXML、WXSS三種技術進?開發,本質就是?個單??應?,所有的??渲染和事件處理,都在?個??內進?,但?可以通過微信客戶端調?原?的各種接?;
微信的架構,是數據驅動的架構模式,它的UI和數據是分離的,所有的??更新,都需要通過對數據的更改來實現;
?程序分為兩個部分 webview 和 appService 。其中 webview 主要?來展現 UI ,appService用來處理業務邏輯、數據及接?調?。它們在兩個進程中運?,通過系統層 JSBridge 實現通信,實現 UI 的渲染、事件的處理
小程序項目的主要目錄文件作用
project.config.json 項目的配置文件,做一些個性化配置,例如界面顏色、編譯配置等等; app.json 當前小程序的全局配置,包括小程序的所有頁面路徑配置、界面表現、網絡超時時間、底部tab等; sitemap.json 配置小程序及其頁面是否允許被微信索引; pages 里面包含了一個個具體的頁面; wxml (WeiXin Markup Language)是框架設計的一套標簽語言,結合基礎組件、事件系統,可以構建出頁面的結構 wxss (WeiXin Style Sheets)是一套樣式語言,用于描述 WXML 的組件 樣式 app.wxss作為全局樣式,會作用于當前小程序的所有頁面,局部頁面樣式 page.wxss僅對當前頁面生效; app.js 小程序的邏輯 js 邏輯處理,網絡請求 json 頁面配置
小程序的雙向綁定和vue哪里不一樣
小程序直接 this.data 的屬性是不可以同步到視圖的,必須調用: this.setData({ // 這里設置 })
小程序頁面的生命周期函數
onLoad 頁面加載時觸發。一個頁面只會調用一次,可以在 onLoad 的參數中獲取打開當前頁面路徑中的參數(監聽頁面加載)
onShow() 頁面顯示/切入前臺時觸發(監聽頁面顯示)
onReady() 頁面初次渲染完成時觸發。一個頁面只會調用一次,代表頁面已經準備妥當,可以和視圖層進行交互(監聽頁面初次渲染完成)
onHide() 頁面隱藏/切入后臺時觸發。 如 navigateTo 或底部 tab 切換到其他頁面,小程序切入后臺等(監聽頁面隱藏)
onUnload() 頁面卸載時觸發。如 redirectTo 或 navigateBack 到其他頁面時(監聽頁面卸載)
微信小程序的優劣勢
優勢 : 即用即走,不用安裝,省流量,省安裝時間,不占用桌面 依托微信流量,天生推廣傳播優勢 開發成本比 App 低 缺點 : 用戶留存,即用即走是優勢,也存在一些問題 入口相對傳統 App 要深很多 限制較多 , 頁面大小不能超過2M , 不能打開超過10個層級的頁面
小程序的wxss和css有哪些不一樣的地方
WXSS 和 CSS 類似,不過在 CSS 的基礎上做了一些補充和修改
尺寸單位 rpx rpx 是響應式像素,可以根據屏幕寬度進行自適應。規定屏幕寬為 750rpx。如在 iPhone6 上,屏幕寬度為 375px,共有 750 個物理像素,則 750rpx = 375px = 750 物理像素
使用 @import 標識符來導入外聯樣式。@import 后跟需要導入的外聯樣式表的相對路徑,用;表示語句結束
小程序頁面間有哪些傳遞數據的方法
(1) 使用全局變量實現數據傳遞在 app.js 文件中定義全局變量 globalData , 將需要存儲的信息存放在里面 使用的時候,直接使用 getApp() 拿到存儲的信息
(2) 使用 wx.navigateTo 與 wx.redirectTo 的時候,可以將部分數據放在 url 里面,并在新頁面 onLoad 的時候初始化 需要注意的問題: wx.navigateTo 和 wx.redirectTo 不允許跳轉到 tab 所包含的頁面 onLoad 只執行一次 (3) 使用本地緩存 Storage 相關
小程序關聯微信公眾號如何確定用戶的唯一性
如果開發者擁有多個移動應用、網站應用、和公眾帳號(包括小程序),可通過 unionid 來區分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應用、網站應用和公眾帳號(包括小程序),用戶的 unionid 是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應用,unionid 是相同的
如何實現下拉刷新
首先在全局 config 中的 window 配置 enablePullDownRefresh 在 Page 中定義 onPullDownRefresh 鉤子函數 , 到達下拉刷新條件后 , 該鉤子函數執行, 發起請求方法 請求返回后,調用 wx.stopPullDownRefresh 停止下拉刷新
bindtap和catchtap的區別是什么
相同點:首先他們都是作為點擊事件函數,就是點擊時觸發。在這個作用上他們是一樣的,可以不做區分
不同點:他們的不同點主要是bindtap是不會阻止冒泡事件的,catchtap是阻止冒泡的
‘wx.navigateTo()’, ‘wx.redirectTo()’,‘wx.switchTab()’, ‘wx.navigateBack()’,'wx.reLaunch()'的區別
wx.navigateTo():保留當前頁面,跳轉到應用內的某個頁面。但是不能跳到 tabbar 頁面
wx.redirectTo():關閉當前頁面,跳轉到應用內的某個頁面。但是不允許跳轉到 tabbar 頁面
wx.switchTab():跳轉到 tabBar 頁面,并關閉其他所有非 tabBar 頁面
wx.navigateBack(): 關閉當前頁面,返回上一頁面或多級頁面。可通過 getCurrentPages() 獲取當前的頁面棧,決定需要返回幾層
wx.reLaunch():關閉所有頁面,打開到應用內的某個頁面
typeof 運算符和 instanceof 運算符以及 isPrototypeOf() 方法的區別
typeof是一個運算符,用于檢測數據的類型,比如基本數據類型null、undefined、string、number、boolean, 以及引用數據類型object、function,但是對于正則表達式、日期、數組這些引用數據類型,它會全部識別為object;
instanceof同樣也是一個運算符,它就能很好識別數據具體是哪一種引用類型。它與isPrototypeOf的區別就是 它是用來檢測構造函數的原型是否存在于指定對象的原型鏈當中; 而isPrototypeOf是用來檢測調用此方法的對象是否存在于指定對象的原型鏈中,所以本質上就是檢測目標不同。
call()和apply()的區別
實際上,apply和call的功能是一樣的,只是傳入的參數列表形式不同。 apply(this對象,[參數1,參數2,…]) 即使只有一個參數,也要寫進數組里 call(this對象,參數1,參數2,…) 它可以接受多個任意參數,第一個參數與apply一樣,后面則是一串參數列表
微信小程序怎樣跟事件傳值
給 HTML 元素添加 data-*屬性來傳遞我們需要的值,然后通過 e.currentTarget.dataset 或 onload 的 param 參數獲取。 但 data -名稱不能有大寫字母, 不可以存放對象
微信小程序與 vue 區別
? 生命周期不一樣,微信小程序生命周期比較簡單 ? 數據綁定也不同,微信小程序數據綁定需要使用{{}},vue 直接 : 就可以 ? 控制元素的顯示和隱藏,小程序中,使用 wx-if 和 hidden 控制元素的顯示和隱藏 ; vue 中,使用 v-if 和 v-show ? 事件處理不同,小程序中,全用 bindtap(bind+event),或者catchtap(catch+event) 綁定事件,vue:使用 v-on:event 綁定事件,或者使用@event 綁定事件 ? 數據雙向綁定也不一樣, 在 vue 中, 只需要在表單元素上加上 v-model, 然后再綁定 data 中對應的一個值,當表單元素內容發生變化 時,data 中對應的值也會相應改變,這是 vue 非常 nice 的一點。微信小程序必須獲取到表單元素改變的值,然后再值賦給一個 data 中 聲明的變量。
哪些方法可以用來提高微信小程序的應用速度
提高頁面加載速度 用戶行為預測 減少默認 data 的大小 組件化方案
怎么解決小程序的異步請求問題
小程序支持大部分 ES6 語法 ? 在返回成功的回調里面處理邏輯 Promise 異步
小程序 wxml 與標準的 html 的異同?
相同: ? 都是用來描述頁面的結構; ? 都由標簽、屬性等構成; 不同: ? 標簽名字不一樣,且小程序標簽更少,單一標簽更多; ? 多了一些 wx:if 這樣的屬性以及 {{ }}這樣的表達式; ? WXML 僅能在微信小程序開發者工具中預覽,而 HTML 可以在瀏覽器內預 覽; ? 組件封裝不同, WXML 對組件進行了重新封裝; ? 小程序運行在 JS Core 內,沒有 DOM 樹和 window 對象,小程序中無法使 用 window 對象和 document 對象。
小程序簡單介紹下三種事件對象的屬性列表?
基礎事件(BaseEvent) ? type:事件類型 ? timeStamp:事件生成時的時間戳 ? target:觸發事件的組件的屬性值集合 ? currentTarget:當前組件的一些屬性集合 自定義事件(CustomEvent) ? detail 觸摸事件(TouchEvent) ? touches ? changedTouches
小程序對 wx:if 和 hidden 使用的理解?
? wx:if 有更高的切換消耗。 ? hidden 有更高的初始渲染消耗。 ? 因此,如果需要頻繁切換的情景下,用 hidden 更好,如果在運行時條件不大可能改變則 wx:if 較好
微信小程序與 H5 的區別
運行環境的不同 : 傳統的 HTML5 的運行環境是瀏覽器,包括 webview,而微信小程序的運行環境并非完整的瀏覽器,是微信開發團隊基于瀏覽器內核完全重構的一個內置解析器,針對小程序專門做了優化,配合自己定義的開發語言標準,提升了小程序的性能。 ? 開發成本的不同 : 只在微信中運行,所以不用再去顧慮瀏覽器兼容性,不用擔心生產環境中出現不可預料的奇妙 BUG ? 獲取系統級權限的不同
app.json 是對當前小程序的全局配置,講述三個配置各個項的含義?
? pages 字段 —— 用于描述當前小程序所有頁面路徑,這是為了讓 微信客戶端知道當前你的小程序頁面定義在哪個目錄。 ? window 字段 —— 小程序所有頁面的頂部背景顏色, 文字顏色定義在這里的 ? tab 字段 —— 小程序全局頂部或底部 tab
小程序 onPageScroll 方法的使用注意什么?
由于此方法調用頻繁,不需要時可以去掉,不要保留空方法,并且使用 onPageScroll 時,盡量避免使用 setData(),盡量減少 setData()的使用頻 次。
小程序視圖渲染結束回調?
使用 setData(data, callback),在 callback 回調方法中添加后續操作代碼
小程序同步 API 和異步 API 使用時注意事項?
wx.setStorageSync 是以 Sync 結尾的 API 為同步 API, 使用時使用 try-catch 來查看異常,如果判定 API 為異步,可以在其回調方法 success、fail、 complete 中進行下一步操作。
如何封裝微信小程序的數據請求的?
1、將所有的接口放在統一的 js 文件中并導出。
2、在 app.js 中創建封裝請求數據的方法。
3、在子頁面中調用封裝的方法請求數據。
小程序與原生 App 哪個好?
小程序除了擁有公眾號的低開發成本、低獲客成本低以及無需下載等優勢,在 服務請求延時與用戶使用體驗是都得到了較大幅度 的提升, 使得其能夠承載跟 復雜的服務功能以及使用戶獲得更好的用戶體驗。
webview 中的頁面怎么跳回小程序中?
首先要引入最新版的 jweixin-x.x.x.js,然后
wx.miniProgram.navigateTo({ url: '/pages/login/login'+'$params' })
webview 的頁面怎么跳轉到小程序導航的頁面?
小程序導航的頁面可以通過 switchTab,但默認情況是不會重新加載數據 的。若需加載新數據,則在 success 屬性中加入以下代碼即可:
小程序調用后臺接口遇到哪些問題?
1、數據的大小有限制,超過范圍會直接導致整個小程序崩潰,除非重啟小程 序;
2、小程序不可以直接渲染文章內容頁這類型的 html 文本內容,若需顯示要借住插件,但插件渲染會導致頁面加載變慢,所以最好在后臺對文章內容的 html 進行過濾,后臺直接處理批量替換 p 標簽 div 標簽為 view 標簽,然后其它的標簽讓插件來做,減輕前端的時間
微信小程序的優劣勢?
優勢:
1、無需下載,通過搜索和掃一掃就可以打開。
2、良好的用戶體驗:打開速度快。
3、開發成本要比 App 要低。
4、安卓上可以添加到桌面,與原生 App 差不多。
5、為用戶提供良好的安全保障。小程序的發布,微信擁有一套嚴格的審 查流程,不能通過審查的小程序是無法發布到線上的。
劣勢:
1、限制較多。頁面大小不能超過 1M。不能打開超過 5 個層級的頁面。
2、樣式單一。小程序的部分組件已經是成型的了,樣式不可以修改。例 如:幻燈片、導航。
3、推廣面窄,不能分享朋友圈,只能通過分享給朋友,附近小程序推 廣。其中附近小程序也受到微信的限制。
4、依托于微信,無法開發后臺管理功能。
以上是“基于小程序的面試題有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。