微信小程序面試題


1. 簡單敘述小程序的相關文件類型

微信小程序項目構成主要有四個文件類型:

  WXML 是框架設計的一套標簽語言,結合基礎組件、事件系統,可以構建出頁面的結構,內部主要是微信自己定義的一套組件

  WXSS是一套樣式語言,用於描述WXML的組件樣式。

  js邏輯處理,網絡請求

  json 小程序設置,如頁面注冊、頁面標題、tabBar

  app.json:必須要有的文件,如果沒有這個文件,項目無法運行,因為這個文件作為微信小程序文件入口,整個小程序的全局配置,包括頁面注冊,網絡設置,以及小程序窗口的背景顏色,配置導航條樣式,配置默認標題

  app.js:必須要有的文件,沒有也是會報錯的,但是這個文件創建了就行,什么都不需要寫以后我們可以在這個文件中監聽並處理小程序聲明周期函數,聲明全局變量。

  app.wxss:全局樣式

2.你是怎么封裝小程序的數據請求的?

  講所有的接口放在同一的js文件中並導出

  在app.js中創建封裝請求數據的方法

  在子頁面中調用封裝的方法請求數據

  

3.有那些參數傳值的方法?

  給html元素添加data-*屬性來傳遞我們需要的參數,用currentTarget.dataset或者onload的param參數獲取。但是data-*不能有大寫字母不可以存放對象

  設置id的方法標識通過e.currentTarget.id獲取設置的id值,然后通過設置全局對象的方法來傳遞參數

  在navigator中添加參數傳值

4.使用過那些方法,提高小程序的應用速度

  提高頁面加載速度

  用戶行為預測

  減少默認data的大小

  組件化方案

5.小程序與原生app哪個好?

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

6.簡述小程序原理

  小程序采用js、WXML、WXSS三種技術進行開發,從技術講和現有的前端開發差不多,但深入挖掘的話卻有所不同

  js:首先js的代碼試運行在微信app的,並不是運行在瀏覽器,因此一些h5技術的應用,需要微信api支持,而這些限住h5技術的應用,且並不能稱為嚴格的h5,同理,微信提供獨有的某些api,h5也不支持。

  WXML:WXML微信自己基於XML語法開發的,因此開發時,只能使用微信提供的現有標簽,HTML的標簽是無法使用的。

  WXSS:WXSS具有css的大部分特性,但並不是所有的支持,而且支持哪些,不支持哪些,並沒有詳細的文檔

  微信的架構,是數據缺東模式,他的ui和數據是分離的,所有的頁面更新,都需要通過對數據的更改來實現。

  小程序分為兩個部分webview和AppService。其中webview主要是用來展示ui,AppService是用來處理業務邏輯、數據以及接口調用。他們在兩個進程中運行,通過系統層JSBridge實現同行,實現UI的渲染、事件的處理

6.小程序的雙向綁定和vue有什么不同

  vue:this.data

  小程序:this.setdata({ })

7.如何實現下拉刷新

  首先在全局的config中的window配置enablePullDownRefresh

  在page中定義onPullDownRefresh鈎子函數,到達下拉刷新條件后,該鈎子函數執行,發起請求方法。

  請求返回后,wx.stopPullDownRefresh停止刷新

8.  bindtab和catchtap的區別

  都是點擊事件,bindtap不會阻止冒泡,catchtap是阻止冒泡的

9.頁面跳轉

  wx.navigateTo():保留當前頁,跳轉到應用內某個頁面,但是不能跳轉到tabbar

  wx.redirectTo():關閉當前頁,跳轉到用用內某個頁面,但是不能跳到tabbar

  wx.switchTab():跳轉到tabbar,並關閉其他所有非tabbar頁面

  wx.navigateBack():關閉當前頁面,返回上一頁或者多頁,可通過getCurrentPage() 獲取當前的頁面棧,決定需要返回幾層

  wx.reLaunch():關閉所有頁面,打開到應用內的某個頁面

10.小程序生命周期

  onLoad():頁面加載時觸發,只會調用一次,可獲取當前頁面路徑中的參數

  onShow():頁面顯示/切入前台時觸發,一般用來發送數據請求

  onReady():頁面初次渲染完成時觸發,只調用一次,代表頁面已可和視圖進行交互

  onHide():頁面隱藏/切入后台時觸發,如底部tab切換到其他頁面或小程序切入后台等

  onUnload():頁面卸載時觸發,如redirectTo或navigateBack到其他頁面時


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM