# 小程序使用中常見問題
1、如何避免微信小程序中 app.js中 onshow事件的n次觸發的問題?
問題
在開發中,遇到了一個小難題,就是app.js中 onshow事件總是會因調用其它API而觸發,例如:wx.chooseImage,wx.makephonecall、wx. previewImage等。
解決辦法
目前比較好的辦法就是 onshow中,通過首個參數 option下的 scene判斷進入的場景,根據場景處理相關邏輯。
2、簡單描述下微信小程序的相關文件類型?
微信小程序項目結構主要有如下四個文件類型:
WXML,是框架設計的一套標簽語言,結合基礎組件、事件系統,可以構建出頁面的結構。內部主要是微信自己定義的一套組件;
WXSS,是一套樣式語言,用于描述WXML的組件樣式;
js,邏輯處理,網絡請求
json,小程序設置,如頁面注冊、頁面標題及 tabBar。必須要有這個文件,如果沒有這個文件,項目無法運行,因為微信框架把這個作為配置文件入口。整個小程序的全局配置。包括頁面注冊,網絡設置以及小程序的 window背景色、配置導航條樣式,配置默認標題。
app.js,必須要有這個文件,在這個文件中監聽并處理小程序的生命周期函數、聲明全局變量
3、你是怎么封裝微信小程序的數據請求的
第一步、在app.js中,創建封裝請求數據的方法
第二步,將所有的接口放在統一的js文件中并導出
第三步,在子頁面中調用封裝的方法請求數據
4、有哪些參數傳值的方法?
給HTML元素添加data-xx屬性來傳遞我們需要的值,然后通過e.currentTarget.dataset獲取;
設置id的方法標識來傳值,通過e.currentTarget.id 獲取設置的id的值,然后通過設置全局對象的方式來傳遞數值
在 navigator中添加參數傳值
5、小程序與原生App哪個好?
小程序除了擁有公眾號的低開發成本、低獲客成本、以及無需下載等優勢。
在服務請求延時與用戶使用體驗都得到了較大幅度的提升,使得其能夠承載更復雜的服務功能以及使用戶獲得更好的用戶體驗。
6、簡述微信小程序原理?
微信小程序采用 Javascriρt、WXML、WXSS三種技術進行開發,從技術講和現有的前端開發差不多,但又有所不同,
Javascript
首先 JavaScript的代碼是運行在微信App中的,并不是運行在瀏覽器中,因此一些H5技術的應用,需要微信App提供對應的API支持,而這限制住了H5技術的應用,且其不能稱為嚴格的H5,可以稱其為偽H5,同理,微信提供的獨有的某些APl,H5也不支持或攴持的不是特別好。
WXML
WXML是微信自己基于XML語法開發的,因此開發時,只能使用微信提供的現有標簽,HTML的標簽是無法使用的。
WXSS
WSS具有CSS的大部分特性,但并不是所有的都支持,而且支持哪些,不支持哪些并沒有詳細的文檔
小程序是數據驅動的架構模式,它的UI和數據是分離的,所有的頁面更新,都需要通過對數據的更改來實現
小程序分為兩個部分 webview和 appService。其中 webview主要用來展現UI頁面, appService用來處理業務邏輯、數據及接口調用。它們在兩個進程中運行,通過系統層 JSRridge實現通信,實現UI的渲染、事件的處理。
7、分析下微信小程序的優劣勢?
優勢
1.無需下載,通過搜索和掃一掃就可以打開
2.良好的用戶體驗:打開速度快。
3.開發成本要比App要低
4.安卓上可以添加到桌面,與原生App差不多
5.為用戶提供良好的安全保障。小程序的發布,微信擁有一套嚴格的審査流程,不能通過審查的小程序是無法發布到線上的
劣勢:
1.限制較多。頁面大小不能超過1M。不能打開超過5個層級的頁面
2.樣式單一。小程序的部分組件已經是成型的了,樣式不可以修改。例如:幻燈片、導航。
3.推廣面窄,不能分享朋友圈,只能通過分享給朋友,附近小程序推廣。其中附近小程序也受到微信的限制
4.依托于微信,無法開發后臺管理功能。
8、微信小程序與H5的區別
運行環境的不同
傳統的HTML5的運行環境是瀏覽器,
微信小程序的運行環境并非完整的瀏覽器,是微信開發團隊基于瀏覽器內核完全重構的一個內置解析器,針對小程序專門做了優化,配合自己定義的開發語言標準,升了小程序的性能,
開發成本的不同
只在微信中運行,所以不用再去顧慮瀏覽器兼容性,不用擔心生產環境中出現不可預料的奇妙BUG
獲取系統級權限的不同
系統級權限都可以和微信小程序無縫銜接
應用在生產環境的運行流暢度
長久以來,當HTML5應用面對復雜的業務邏輯或者豐富的頁面交互時,它的體驗總是不盡人意,需要不斷的對項目優化來提升用戶體驗。但是由于微信小程序運行環境獨立
9、怎么解決小程序的異步請求問題?
在回調函數中調用下一個組件的函數
10、小程序的雙向綁定和Vue哪里不一?
小程序直接this.data的屬性是不可以同步到視圖的,必須調用this.setData
this.setData({
num:100
})
1
2
3
11、哪些方法可以用來提高微信小程序的應用速度
1.提高頁面加載速度
2.用戶行為預測
3.減少默認data的大小
4.組件化方案
12、如何實現下拉刷新
首先在全局 config中的 window內配置 enablepullDownRefresh
在page中定義 onPullDownRefresh鉤子函數,下拉刷新后,觸發該鉤子函數,
發起請求,請求返回后,調用wx.stopPullDownRefresh停止下拉刷新
13、bindtap和 catchtap的區別是什么
相同點
都是作為點擊事件函數
不同點
bindtap是不會阻止冒泡事件的,
catchtap是阻值冒泡事件的
14、wx常用的跳轉方法
wx.navigateTo():
保留當前頁面,跳轉到應用內的某個頁面。但是不能跳到 tabbar頁面
wx.redirectTo()
關閉當前頁面,跳轉到應用內的某個頁面。但是不允許跳轉到 tabbar頁面
wx.switchTab()
跳轉到 tabBar頁面,并關閉其他所有非 tabbar頁面
wx.navigateBack()
關閉當前頁面,返回上一級頁面或上多級頁面。可通過 getCurrentPages( ),獲取當前的頁面棧,決定需要返回幾層
wx.reLaunch()
關閉所有頁面,打開到應用內的某個頁面
15、點擊穿透問題

- 惠惠軟件-開發自助學習系統
- 一.微信公眾號(服務號)申請流程
- 二.申請所需提前準備資料
- 三.認證微信公眾號:申請微信小程序流程
- 四.微信小程序安裝和開發環境
- 五.微信小程序如何上傳、提交審核、發布操作
- 六.微信小程序開發教程手冊
- 0.1微信小程序 小程序簡介
- 0.2微信小程序 開始第一步
- 0.3微信小程序 小程序代碼構成
- 0.4微信小程序 小程序宿主環境
- 0.5微信小程序 小程序協同工作和發布
- 0.6微信小程序 目錄結構
- 0.7微信小程序 全局配置
- 0.8微信小程序 頁面配置
- 0.9微信小程序 sitemap配置
- 0.10微信小程序 場景值
- 0.11微信小程序 注冊小程序
- 0.12微信小程序 注冊頁面
- 0.13微信小程序 頁面生命周期
- 0.14微信小程序 頁面路由
- 0.15微信小程序 模塊化
- 0.16微信小程序 API
- 0.17微信小程序 運行環境
- 0.18微信小程序 JavaScript支持情況
- 0.19微信小程序 運行機制
- 0.20微信小程序 更新機制
- 0.21微信小程序 廣告·Banner 廣告
- 0.22微信小程序 安全指引·開發原則與注意事項
- 0.23微信小程序 調試
- 0.24微信小程序 啟動性能
- 0.25微信小程序 運行時性能
- 0.26微信小程序 性能分析工具
- 0.27微信小程序 體驗評分
- 八.小程序的美工
- 8.1圖片大小
- 8.2顏色代碼
- 8.3小程序的美工技巧
- 九.微信小程序-定制開發
- 十.微信支付申請流程
- 十一.小程序支付對接流程
- 十二.微信小程序使用中常見問題匯總
- 十二.小程序開發中遇到的問題—匯總
- 十四.小程序問題及解決
- 十五.網站開發定制
- 1.開發定制流程
- 2.搭建網站的過程
- 3.做網站基本費用
- 4.服務器選什么系統更好?
- 十六.常用工具、軟件網站推薦