? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 小程序面試題
小程序授權(quán)登錄流程
0、如何獲得用戶信息
a钝鸽、open-type=getUserInfo?
或
b薯定、直接調(diào)用wx. getUserInfo 方法
通過wx.longin
1.登陸只需發(fā)送code到后臺隙轻,后臺獲取openid埠帕,根據(jù)openid到數(shù)據(jù)庫中查找用戶信息, 若有則返回用戶信息大脉,若沒有將openid插入數(shù)據(jù)庫搞监,
2.后臺生成token(可以是用戶id和其他隨機(jī)串組合的加密字符串)返回前臺token和用戶信息
3.前臺判斷用戶信息是否包含用戶名稱水孩,用戶城市镰矿。。俘种。等信息秤标,若包含則登陸成功
4若不包含,則調(diào)用 wx.getUserInfo宙刘,發(fā)送encryptedData苍姜,iv,token到后臺悬包,后臺根據(jù)token找到用戶openid解密encryptedData和iv獲取用戶其他信息
5.然后更新數(shù)據(jù)庫衙猪,并返回用戶信息
小程序原理
答:微信小程序采用JavaScript、WXML布近、WXSS三種技術(shù)進(jìn)行開發(fā)垫释,從技術(shù)講和現(xiàn)有的前端開發(fā)差不多,但深入挖掘的話卻又有所不同撑瞧。
JavaScript:首先JavaScript的代碼是運(yùn)行在微信App中的棵譬,并不是運(yùn)行在瀏覽器中,因此一些H5技術(shù)的應(yīng)用预伺,需要微信App提供對應(yīng)的API支持订咸,而這限制住了H5技術(shù)的應(yīng)用曼尊,且其不能稱為嚴(yán)格的H5,可以稱其為偽H5脏嚷,同理骆撇,
微信提供的獨(dú)有的某些API,H5也不支持或支持的不是特別好然眼。
WXML:WXML微信自己基于XML語法開發(fā)的艾船,因此開發(fā)時,只能使用微信提供的現(xiàn)有標(biāo)簽高每,HTML的標(biāo)簽是無法使用的屿岂。
WXSS:WXSS具有CSS的大部分特性,但并不是所有的都支持鲸匿,而且支持哪些爷怀,不支持哪些并沒有詳細(xì)的文檔。
小程序的優(yōu)勢和劣勢
優(yōu)勢:1带欢、無需下載运授,通過搜索和掃一掃就可以打開。
2乔煞、良好的用戶體驗(yàn):打開速度快吁朦。
3、開發(fā)成本要比App要低渡贾。
4逗宜、安卓上可以添加到桌面,與原生App差不多空骚。
5纺讲、為用戶提供良好的安全保障。小程序的發(fā)布囤屹,微信擁有一套嚴(yán)格的審查流程熬甚, 不能通過審查的小程序是無法發(fā)布到線上的。
劣勢: 1肋坚、限制較多乡括。頁面大小不能超過1M。不能打開超過5個層級的頁面智厌。
2诲泌、樣式單一。小程序? 的部分組件已經(jīng)是成型的了峦剔,樣式不可以修改档礁。例如:幻燈片、導(dǎo)航吝沫。
3呻澜、推廣面窄递礼,不能分享朋友圈,只能通過分享給朋友羹幸,附近小程序推廣脊髓。其中附近小程序也受到微信的限制。
4栅受、依托于微信将硝,無法開發(fā)后臺管理功能。
獲取定位
首先我們需要從高德地圖官網(wǎng)注冊一個賬號屏镊,然后獲取自己的key依疼,
調(diào)用微信接口wx.getloction,返回給我們一個json數(shù)組而芥,數(shù)組中包含各種屬性
我們最需要的就是經(jīng)度和緯度律罢,我們獲取了經(jīng)度和緯度就可以調(diào)用地圖api,把我們的經(jīng)緯度傳上去棍丐,就可獲得地圖返回給我們當(dāng)前位置的信息误辑。
小程序如何實(shí)現(xiàn)雙向數(shù)據(jù)綁定(搜索)
1、利用bindinput來觸發(fā)改變
2歌逢、利用data-name來綁定獲取的數(shù)據(jù)
3巾钉、bindinput觸發(fā)時利用event獲取name的值,然后用this.setData改變data-name綁定的參數(shù)秘案。
4砰苍、利用data-name中間屬性來動態(tài)指定對象還是非對象,入data-name="login"或data-name="login.username"踏烙,這樣可以根據(jù)中間有沒有. 來判斷是對象還是直接參數(shù)
回到頂部
第一種情況,當(dāng)頁面在頂部的時候师骗,回到頂部按鈕是不會出現(xiàn)的历等。
第二種情況,當(dāng)頁面在離開頂部一定距離的時候讨惩,回到頂部按鈕出現(xiàn)
在這里我們?nèi)绻褂脻L動事件的話,小程序規(guī)定 最外層一定要使用scroll-view標(biāo)簽進(jìn)行包裹寒屯,然后在設(shè)置scroll-y=”true” 意思是允許頁面了縱向滾動荐捻,scroll-top是滾動到頂部做處理,一般綁定一個事件寡夹,bindscrolltolower同樣的原理处面,滾動到底部做處理,bindscroll表示在滾動的時候出發(fā)這個事件菩掏。下面WXML內(nèi)部的話魂角,就是我們回到頂部的按鈕設(shè)置,我們在點(diǎn)擊它時綁定一個事件goTop智绸,讓他的滾動高度等于0野揪,這樣它就回到頂部了访忿。
點(diǎn)擊進(jìn)入詳情頁
在wxml頁面寫一個data-自定義屬性={寫入?yún)?shù)},然后在js里調(diào)用斯稳。點(diǎn)擊跳入哪個頁面在哪個頁面后面寫入你要傳的參數(shù)海铆。
更多商品點(diǎn)擊進(jìn)入有一個上拉加載
分類
分類界面實(shí)現(xiàn)
左邊是一級目錄,右邊是一級目錄對應(yīng)的二級目錄挣惰,根據(jù)這個需求卧斟,我們數(shù)據(jù)設(shè)計結(jié)構(gòu)一定是一個數(shù)組,第一個數(shù)組包含一級目錄數(shù)據(jù)憎茂,嵌套的數(shù)組包含的是二級目錄數(shù)據(jù)珍语。
總體主盒子:positon:relative? 相對定位
左側(cè)主盒子:設(shè)置行內(nèi)級元素,display:inline-block
右側(cè)主盒子:絕對定位
4.微信小程序的分享功能竖幔,實(shí)際上就是 轉(zhuǎn)發(fā)? √
第一種用法是:?
onShareAppMessage?這個方法在每個頁面 js 中 page里面廊酣,這個函數(shù)需要return一個對象,如果不設(shè)置這個函數(shù)赏枚,那么右上角的···則沒有轉(zhuǎn)發(fā)這個功能亡驰。
返回的對象有三個值:
title:這是轉(zhuǎn)發(fā)的標(biāo)題。默認(rèn)值是當(dāng)前小程序的名稱
path:這是轉(zhuǎn)發(fā)路徑饿幅。默認(rèn)值是當(dāng)前頁面凡辱,如果自己設(shè)定則是以 / 開頭的完整路徑:例如: /pages/index/index? ? ? 就是 pages文件夾 下面 index文件夾 里的 index.wxml
imageUrl:自定義圖片路徑,可以是本地文件路徑栗恩、代碼包文件路徑或者網(wǎng)絡(luò)圖片路徑透乾。支持PNG及JPG。顯示圖片長寬比是 5:4磕秤。默認(rèn)值是當(dāng)前頁面的截圖
第二種用法是:
buttion?這個組件乳乌,添加? open-type="share" 屬性 ,點(diǎn)擊button的時候就能觸發(fā) onShareAppMessage 這個函數(shù)市咆,當(dāng)然汉操,如果沒定義這個函數(shù),那么就沒作用蒙兰。
支付
在這里Catcher先通過wx.login這個API先取到了登錄的憑證code磷瘤,并把這個憑證code做為請求參數(shù)用wx.request這個API發(fā)起一個網(wǎng)絡(luò)請求。
在這個網(wǎng)絡(luò)請求處理后會返回小程序支付所需要的相關(guān)參數(shù)搜变。拿到這些參數(shù)后采缚,再調(diào)用wx.requestPayment這個支付API,此時才算是真正的發(fā)起支付挠他。
小程序有哪些參數(shù)傳值的方法
1.給html元素添加data-屬性來傳值扳抽,通過e.currentTarget.dataset或onload的param參數(shù)獲取。但data-名稱不能有大寫字母和不可存放對象
2.設(shè)置id的方法來傳值通過e.currentTarget.id獲取設(shè)置的id值,然后通過設(shè)置全局對象方式來傳值
3.在navigator中添加參數(shù)傳值 通過js中的onload生命周期的參數(shù)“options”進(jìn)行接收贸呢。
<navigator url="list/list?title={{ title }}" >更多</navigator>傳遞赂苗;
小程序路由傳參數(shù)
給HTML一個點(diǎn)擊事件
? <view class="classify" wx:for="{{classifyData}}" wx:key="id" data-index="{{index}}" bindtap='active'>{{item}}</view>
然后在定義路由跳轉(zhuǎn)的地方寫點(diǎn)擊事件并傳參
active:function(e){ wx.navigateTo({ //跳轉(zhuǎn)到新的頁面 url: '../detail/detail?title=' + e.currentTarget.dataset.name//實(shí)際路徑要寫全 title是要傳的參數(shù) }) }
在目標(biāo)頁用options接收
onLoad: function (options) {
? ? console.log(options.title)? //此時值就是傳的東西? },
小程序和h5的區(qū)別
第一條是運(yùn)行環(huán)境的不同
傳統(tǒng)的HTML5的運(yùn)行環(huán)境是瀏覽器,包括webview贮尉,
而微信小程序的運(yùn)行環(huán)境并非完整的瀏覽器拌滋,
是微信開發(fā)團(tuán)隊基于瀏覽器內(nèi)核完全重構(gòu)的一個內(nèi)置解析器,
針對小程序?qū)iT做了優(yōu)化猜谚,配合自己定義的開發(fā)語言標(biāo)準(zhǔn)败砂,提升了小程序的性能。
第二條是開發(fā)成本的不同
只在微信中運(yùn)行魏铅,不用去顧慮瀏覽器兼容性昌犹,
不用擔(dān)心生產(chǎn)環(huán)境中出現(xiàn)不可預(yù)料的奇妙BUG
第三條是獲取系統(tǒng)級權(quán)限的不同
系統(tǒng)級權(quán)限都可以和微信小程序無縫銜接
第四條便是應(yīng)用在生產(chǎn)環(huán)境的運(yùn)行流暢度
當(dāng)HTML5應(yīng)用面對復(fù)雜的業(yè)務(wù)邏輯或者豐富的頁面交互時,
它的體驗(yàn)總是不盡人意览芳,
需要不斷的對項(xiàng)目優(yōu)化來提升用戶體驗(yàn)斜姥。
webview的頁面怎么跳轉(zhuǎn)到小程序?qū)Ш巾撁?/p>
小程序?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'
??????? })
webview(就是普通的h5網(wǎng)頁)怎么跳轉(zhuǎn)回小程序中
首先要引入最新版的jweixin-1.3.2.js悟泵,然后
wx.miniProgram.navigateTo({
? ? ? ? ? ? url: '/pages/login/login'+'$params'
? ? ? ? })
小程序如何跳轉(zhuǎn)webview頁面
直接寫路徑 url="/pages/index/index"
js寫
bindViewTap: function() {
wx.navigateTo({
url: '../index/index'
})
},
view里邊寫bindtap=“bindViewTap”
小程序發(fā)布流程
先在微信公眾平臺登錄你注冊開發(fā)者時填寫的郵箱賬號和密碼警没,使用你綁定的微信賬號二維碼掃描即可登錄谦去。
第一步:補(bǔ)充小程序的基本信息,如名稱茵休、圖標(biāo)垂谢、描述等臊岸。
第二步:現(xiàn)在可以直接去下載開發(fā)者工具進(jìn)行代碼的開發(fā)和上傳
如果需要其他開發(fā)者配合梗脾,那就需要添加開發(fā)者了尽楔,需要用綁定的微信掃一掃二維碼確認(rèn)身份,填寫上這個開發(fā)真的對應(yīng)信息就可以了
第三步:在開發(fā)設(shè)置頁面查看AppID和AppSecret衡招,配置服務(wù)器域名
第四步:把你在編輯器中寫好的代碼提交到微信公眾平臺篱昔,然后提交審核,審核通過后可發(fā)布
小程序開發(fā)中遇到的問題蚁吝。
0.不能打開超過5個層級的頁面旱爆。
1.√
小程序中的背景圖片不能使用本地的路徑舀射,要么使用在服務(wù)器上的圖片路徑窘茁,
要么編碼成base64位。? ?? image標(biāo)簽才可以使用本地路徑脆烟。
2.點(diǎn)擊view之后山林,獲取該view的text值? ??√
? 這個的解決辦法就是:把view的text值放在data數(shù)據(jù)里面,然后點(diǎn)擊事件觸發(fā)的時候就獲取對應(yīng)data的數(shù)據(jù)
3?遇到當(dāng)調(diào)用自定義的函數(shù)時,出現(xiàn)?function? is not defined?的情況???√
情景再現(xiàn):
(1) 我自定義了一個myLoading的函數(shù)驼抹,然后通過某個事件需要調(diào)用該函數(shù)
(2) 錯誤的調(diào)用方式是:事件的名字里直接寫我剛才自定義的函數(shù)名字桑孩,
這樣調(diào)用會出現(xiàn)問題,正確的調(diào)用方式:需要在調(diào)用的函數(shù)前加入this.
這樣調(diào)用就會出現(xiàn)上面的問題
(3) 正確的調(diào)用方式是:
需要在調(diào)用的函數(shù)前加上 this.??
4.微信小程序的分享功能框冀,實(shí)際上就是 轉(zhuǎn)發(fā)? √
第一種用法是:?
onShareAppMessage?這個方法在每個頁面 js 中 page里面流椒,這個函數(shù)需要return一個對象,如果不設(shè)置這個函數(shù)明也,那么右上角的···則沒有轉(zhuǎn)發(fā)這個功能宣虾。
返回的對象有三個值:
title:這是轉(zhuǎn)發(fā)的標(biāo)題。默認(rèn)值是當(dāng)前小程序的名稱
path:這是轉(zhuǎn)發(fā)路徑温数。默認(rèn)值是當(dāng)前頁面绣硝,如果自己設(shè)定則是以 / 開頭的完整路徑:例如: /pages/index/index? ? ? 就是 pages文件夾 下面 index文件夾 里的 index.wxml
imageUrl:自定義圖片路徑,可以是本地文件路徑撑刺、代碼包文件路徑或者網(wǎng)絡(luò)圖片路徑鹉胖。支持PNG及JPG。顯示圖片長寬比是 5:4够傍。默認(rèn)值是當(dāng)前頁面的截圖
第二種用法是:
buttion?這個組件甫菠,添加? open-type="share" 屬性 ,點(diǎn)擊button的時候就能觸發(fā) onShareAppMessage 這個函數(shù)冕屯,當(dāng)然淑蔚,如果沒定義這個函數(shù),那么就沒作用愕撰。
?5.數(shù)據(jù)傳值的問題:傳值的方法刹衫。(案例例如一個for循環(huán)。然后點(diǎn)擊item需要知道點(diǎn)擊的是第幾個item搞挣。)√
在view上面加一個屬性id="需要得到的值"
然后設(shè)在點(diǎn)擊事件带迟。在js里面的這個函數(shù)里面獲取。
在函數(shù)里面囱桨,參數(shù)是event仓犬。通過
event.currentTarget.id來獲取。
6.form組件設(shè)置padding無效√
? ? ? 解決方案:經(jīng)過反復(fù)測試發(fā)現(xiàn)小程序的form組件是隸屬于行內(nèi)元素范圍的舍肠。
因?yàn)槲以O(shè)置了padding屬性一點(diǎn)效果都沒有搀继,我改為view有效,在改回form組件還是沒有效果翠语,判斷form組件和我們所認(rèn)為的正常html的form表單塊元素是不一樣的叽躯。而且小程序中的組件不知道為啥始終是在最頂層,觀察了下wxml面板肌括,并為發(fā)現(xiàn)自有css屬性
因此可以將form組件改為block化点骑,或者在form組件內(nèi)先使用空的view來設(shè)置padding在根據(jù)頁面需求進(jìn)行下一步布局。
7.小程序中的scroll-view組件不能和textarea一起用,自己寫的類似scroll-view組件(overflow-y:auto)也不能一起使用黑滴,使用的話憨募,textarea的提示文字和光標(biāo)會飄,根本無法使用袁辈。另外textarea菜谣,也不能display:none,最好的方法是? ? ? ? ? ? 用條件判斷去控制它wx:if="{{show}}"
小程序常用api 20個(如文件上傳晚缩,下載葛菇,錄音,音頻播放橡羞,位置眯停,設(shè)備,撥打電話…)
上傳
wx.uploadFile()?
將本地資源上傳到開發(fā)者服務(wù)器卿泽,客戶端發(fā)起一個 HTTPS POST 請求莺债,其中?content-type?為?multipart/form-data?。
如頁面通過?wx.chooseImage?等接口獲取到一個本地資源的臨時文件路徑后签夭,可通過此接口將本地資源上傳到指定服務(wù)器齐邦。
UploadTask一個可以監(jiān)聽上傳進(jìn)度變化事件,以及取消上傳任務(wù)的對象
UploadTask.onProgressUpdate()監(jiān)聽上傳進(jìn)度變化事件
UploadTask.abort()中斷上傳任務(wù)
下載
wx.downloadFile()
下載文件資源到本地第租,客戶端直接發(fā)起一個 HTTP GET 請求措拇,返回文件的本地臨時路徑
?音頻組件
1、this.comp(“compID”).play()播放音樂鏈接中的音樂
2慎宾、this.comp(“compID”).pause()暫停播放
3丐吓、this.comp(“compID”).setSrc()設(shè)置音頻鏈接
4、this.comp(“compID”).seek()從指定位置繼續(xù)播放音樂
下拉刷新
wx.onDeviceMotionChange()
監(jiān)聽設(shè)備方向變化事件趟据,頻率根據(jù)?wx.startDeviceMotionListening()?的 interval 參數(shù)券犁。可以使用?wx.stopDeviceMotionListening()?停止監(jiān)聽汹碱。
wx.stopPullDownRefresh()停止當(dāng)前頁面下拉刷新粘衬。
導(dǎo)航欄
wx.setNavigationBarTitle()動態(tài)設(shè)置當(dāng)前頁面的標(biāo)題
wx.showNavigationBarLoading()在當(dāng)前頁面顯示導(dǎo)航條加載動畫
wx.hideNavigationBarLoading()在當(dāng)前頁面隱藏導(dǎo)航條加載動畫
wx.setNavigationBarColor()顏色
設(shè)備
wx.startDeviceMotionListening()開始監(jiān)聽設(shè)備方向的變化。
wx.stopDeviceMotionListening()停止監(jiān)聽設(shè)備方向的變化咳促。
wx.onDeviceMotionChange()
監(jiān)聽設(shè)備方向變化事件稚新,頻率根據(jù)?wx.startDeviceMotionListening()?的 interval 參數(shù)」蚋梗可以使用?wx.stopDeviceMotionListening()?停止監(jiān)聽褂删。
收貨地址
wx.chooseAddress()調(diào)起用戶編輯收貨地址原生界面,并在編輯完成后返回用戶選擇的地址尺迂。
轉(zhuǎn)發(fā)
wx.getShareInfo()獲取轉(zhuǎn)發(fā)詳細(xì)信息
wx.hideShareMenu()隱藏轉(zhuǎn)發(fā)按鈕
wx.showShareMenu()顯示當(dāng)前頁面的轉(zhuǎn)發(fā)按鈕
wx.updateShareMenu()更新轉(zhuǎn)發(fā)屬性
支付
wx.faceVerifyForPay()支付各個安全場景驗(yàn)證人臉
wx.requestPayment()發(fā)起微信支付笤妙。
用戶信息
wx.getUserInfo()調(diào)用前需要?用戶授權(quán)?scope.userInfo冒掌。
UserInfo屬性
string nickName用戶昵稱
string avatarUrl
用戶頭像圖片的 URL噪裕。URL 最后一個數(shù)值代表正方形頭像大卸着獭(有 0、46膳音、64召衔、96、132 數(shù)值可選祭陷,0 代表 640x640 的正方形頭像苍凛,46 表示 46x46 的正方形頭像,剩余數(shù)值以此類推兵志。默認(rèn)132)醇蝴,用戶沒有頭像時該項(xiàng)為空。若用戶更換頭像想罕,原有頭像 URL 將失效悠栓。
number gender用戶性別
客服消息
customerTyping下發(fā)客服當(dāng)前輸入狀態(tài)給用戶,
getTempMedia小程序可以使用本接口獲取客服消息內(nèi)的臨時素材(即下載臨時的多媒體文件)按价。目前小程序僅支持下載圖片文件惭适。
sendCustomerMessage發(fā)送客服消息給用戶。
uploadTempMedia小程序可以使用本接口把媒體文件(目前僅支持圖片)上傳到微信服務(wù)器楼镐,用戶發(fā)送客服消息或被動回復(fù)用戶消息癞志。
位置調(diào)用前需要?用戶授權(quán)?scope.userLocation
wx.getLocation(Object object)獲取當(dāng)前的地理位置、速度框产。當(dāng)用戶離開小程序后凄杯,此接口無法調(diào)用。
wx.openLocation()?使用微信內(nèi)置地圖查看位置秉宿。
wx.chooseLocation()打開地圖選擇位置盾舌。
音頻
wx.playVoice() 開始播放語音,同時只允許一個語音文件正在播放蘸鲸,如果前一個語音文件還沒播放完妖谴,將中斷前一個語音播放。
wx.pauseVoice()暫停正在播放的語音酌摇。再次調(diào)用?wx.playVoice?播放同一個文件時膝舅,會從暫停處開始播放。如果想從頭開始播放窑多,需要先調(diào)用?wx.stopVoice仍稀。
InnerAudioContext.offStop()取消監(jiān)聽音頻停止事件
InnerAudioContext.onEnded()監(jiān)聽音頻自然播放至結(jié)束的事件
InnerAudioContext.offEnded()取消監(jiān)聽音頻自然播放至結(jié)束的事件
InnerAudioContext.onTimeUpdate()監(jiān)聽音頻播放進(jìn)度更新事件
InnerAudioContext.offTimeUpdate()取消監(jiān)聽音頻播放進(jìn)度更新事件
圖片
wx.chooseImage()從本地相冊選擇圖片或使用相機(jī)拍照。
wx.previewImage()在新頁面中全屏預(yù)覽圖片埂息。預(yù)覽的過程中用戶可以進(jìn)行保存圖片技潘、發(fā)送給朋友等操作遥巴。
wx.getImageInfo()獲取圖片信息,倘若為網(wǎng)絡(luò)圖片享幽,需先配置download域名才能生效铲掐。
wx.saveImageToPhotosAlbum()保存圖片到系統(tǒng)相冊。
數(shù)據(jù)緩存
wx.getStorage( )從本地緩存中異步獲取指定 key 的內(nèi)容
wx.getStorageSync()wx.getStorage 的同步版本
wx.setStorage()將數(shù)據(jù)存儲在本地緩存中指定的 key 中值桩,會覆蓋掉原來該 key 對應(yīng)的內(nèi)容摆霉。
wx.setStorageSync()wx.setStorage 的同步版本
wx.removeStorage()從本地緩存中移除指定 key
wx.removeStorageSync()wx.removeStorage 的同步版本
wx.clearStorage()清理本地數(shù)據(jù)緩存
wx.clearStorageSync()wx.clearStorage 的同步版本
wx.getStorageInfo()異步獲取當(dāng)前storage的相關(guān)信息
Object wx.getStorageInfoSync()wx.getStorageInfo 的同步版本
1、你是怎么封裝微信小程序的數(shù)據(jù)請求的奔坟?
答:
一携栋、將所有的接口放在統(tǒng)一的js文件中并導(dǎo)出
二、在app.js中創(chuàng)建封裝請求數(shù)據(jù)的方法
三咳秉、在子頁面中調(diào)用封裝的方法請求數(shù)據(jù)
2婉支、你使用過哪些方法,來提高微信小程序的應(yīng)用速度澜建?
答:
一向挖、提高頁面加載速度
二、用戶行為預(yù)測
三霎奢、減少默認(rèn)data的大小
四户誓、組件化方案
3、如何實(shí)現(xiàn)下拉刷新幕侠?
答:用view代替scroll-view,,設(shè)置onPullDownRefresh函數(shù)實(shí)現(xiàn)