亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

詳解微信小程序框架wepy踩坑記錄(與vue對比)

2020-03-21 16:00:50
字體:
來源:轉載
供稿:網友

wepy框架借鑒了vue的語法風格和功能特性,但是在使用過程中還是發現與vue有很大的不同?,F在總結一下自己開發中遇到的問題,共大家參考一下。如果第一次用wepy開發,強烈建議仔細閱讀一下這篇文章,一定對你有幫助,會幫你節約很多寶貴的時間。開發過程中也建議大家時不時的回來閱讀一次,鞏固加強記憶。

wepy中的組件

組件里面的坑還不是一般的多!

首先來說說組件間的數據共享。在vue中你也能做到這一點,只要把 data 寫成一個對象就可以了,當然你不想讓所有的子組件都共享同一份數據,vue中的解決方案是給 data 寫成一個函數就好了,return出來所有的數據,這樣組件間的數據就不會共享了。

但是wepy中不能。文檔中介紹:WePY中的組件都是靜態組件,是以組件ID作為唯一標識的,每一個ID都對應一個組件實例,當頁面引入兩個相同ID的組件時,這兩個組件共用同一個實例與數據,當其中一個組件數據變化時,另外一個也會一起變化。
所以如果同一個頁面引用多個組件,你只能給每個組件定義不同的ID,類似這樣

import Child from '../components/child';  export default class Index extends wepy.page {    components = {      //為兩個相同組件的不同實例分配不同的組件ID,從而避免數據同步變化的問題      child: Child,      anotherchild: Child    };  }

看起來是不是很蠢。但是沒辦法,你只能這么用。

如果頁面中只引用兩三個同類型組件還好,但是如果我是一個循環,我也不知道我要引用多少組件,該怎么辦?
接下來再說說組件的循環。

wepy官方文檔中說明:當需要循環渲染WePY組件時(類似于通過wx:for循環渲染原生的wxml標簽),必須使用WePY定義的輔助標簽<repeat>。但是不支持在 repeat 的組件中去使用 props, computed, watch 等等特性。什么?props 都不讓用??那父組件如何給子組件傳參??

后來實踐發現,如果 props 中的數據在 template 中是能取到的,但是在 method 或者event 中就取不到了,你說神不神奇!
所以最后的解決辦法是用的 wepy-redux,類似vuex,放在 store 中實現的。

視圖的渲染之異步數據

異步數據的獲取后需要手動調用 this.$apply() 方法才能重新渲染視圖,這一點也一定要記得。剛開始做的時候是在頁面 data 中寫的假數據,渲染的好好的。但是數據換成從接口讀取后,死活視圖出不來。琢磨了半天才想起來需要手動調用 this.$apply()。而 vue 是不需要這么做的。

方法定義

wepy中頁面中的事件需要些在 methods 中,組件之間的處理函數需要寫在 events 中,而自己寫的自定義方法需要寫在與 methods 同級中。不像vue,可以寫在 methods 里。在 events 中寫的函數,不需要在調用子組件的時候寫在子組件中,子組件 $emit 會自動去 events 中尋找同名方法執行。這點也與vue不同。

事件傳參

wepy優化了原生小程序在事件中的傳參形式。比如頁面中有一個方法,叫 getIndex,目的是取一個循環的 index 屬性,在原生中需要額外定義一個 data-index 屬性,然后在 getIndex 中通過event.currentTarget.dataset.index 來獲取。而wepy中可以直接在事件里傳遞,但需要加上{{}},寫成 getIndex({{index}})這樣,這點也與vue不同。

數據綁定

這個是小程序原生方法中的不好點,wepy不能幫忙背這個鍋。數據綁定也是使用 {{}},但是{{}} 里面只能進行簡單的運算,具體支持哪些運算可以看官方文檔。需求是一個列表,選中的變個樣式,正常的思路就是選中的時候觸發一個方法,將 index 賦值給 currentActive,在 {{}} 中判斷如果 currentActive == index 就應用 active 樣式,命名很簡單的一個需求。但是寫好了就是不好使,找了半天也沒發現哪錯了,最后看文檔,原來是根本就不支持這種寫法??!只支持簡單的運算,這種不屬于簡單的范圍!!最后的解決辦法是弄了一個數組 arr,選中將對應位置置為 true,在 {{}} 判斷 arr[index] 是否為 true 解決了這個問題。總結一句話:{{}} 一點也不強大。

動態綁定class

wepy中需要遵循小程序原生的綁定方式,與vue中也不同。在vue中,動態的和非動態的需要分別寫,類似這樣:<div class="class-a" :class="{true ? 'class-b': 'class-c'}"></div>。但是在wepy中,動態和非動態的可以寫在一起,類似這樣:<view class="class-a {{true ? 'class-b' : 'class-c'}}">

mixin混合

wepy中的 mixin 分為兩種。對于組件data數據,compontents 組件,events 事件及其他自定義方法采用默認式混合,即如果組件中未定義這些東西,那么 mixin 中的將生效,如果組件中已經定義了,將以組件中定義的為主,mixin 中定義的不會生效。但對于 methods 事件及小程序頁面事件,將采用兼容式混合,只要定義了就都會生效。但是先響應組件中定義的,再響應 mixin 中定義的。而vue組件中 methods 里的事件如果與 mixin 中的重名,會采用組件中的事件。而生命周期的鉤子函數則是先響應 mixin 中的,在響應組件中的。

注:以上問題均是采用wepy1.7.2的版本,祝大家開發愉快,少踩些坑。

最后附上官方文檔鏈接,供大家參考:

小程序官方文檔 
wepy官方文檔

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩经典一区二区三区| 国产日韩欧美夫妻视频在线观看| 亚洲国产精品国自产拍av秋霞| 久久久久久久一区二区| 欧美成人免费小视频| 日韩黄色av网站| 51久久精品夜色国产麻豆| 欧美精品久久久久a| 国产91在线播放| 欧美黑人性猛交| 国产视频精品久久久| 日韩电影视频免费| 精品美女国产在线| 欧美国产日本在线| 精品亚洲一区二区三区在线观看| 在线观看视频99| 欧美激情18p| 精品香蕉一区二区三区| 不卡av日日日| 亚洲精品美女久久| 亚洲精品国产综合久久| 精品久久久久久久久久久久久久| 欧美极品少妇xxxxⅹ裸体艺术| 91国偷自产一区二区三区的观看方式| 日韩精品极品毛片系列视频| 国产精品男女猛烈高潮激情| 欧美成人精品一区二区| 国产精品黄色影片导航在线观看| 日韩av影视在线| 播播国产欧美激情| 亚洲自拍偷拍第一页| 91sao在线观看国产| 亚洲国产成人久久综合一区| 日韩电影第一页| 在线观看精品自拍私拍| 亚洲最大成人网色| 日本欧美在线视频| 欧美性色19p| 国产精品九九九| 欧美日韩国产二区| 最近2019中文字幕在线高清| 日韩av中文字幕在线播放| 亚洲综合大片69999| 亚洲欧美国产视频| 日韩欧亚中文在线| 久久久精品网站| 91日韩在线播放| 懂色av中文一区二区三区天美| 蜜月aⅴ免费一区二区三区| 欧美日韩综合视频网址| 日本高清不卡在线| 九九九久久久久久| 色久欧美在线视频观看| 日本sm极度另类视频| 一区二区三区在线播放欧美| 91高清在线免费观看| 国产成人自拍视频在线观看| 欧美成人免费大片| 国产精品午夜国产小视频| 亚洲黄色成人网| 欧美日韩国产在线播放| 亚洲精品久久久久久久久久久| 日本道色综合久久影院| 日韩av最新在线| 国产在线视频不卡| 国产精品综合不卡av| 福利视频一区二区| 国产成人一区二区三区| 日韩最新免费不卡| 国产亚洲成av人片在线观看桃| 日韩av第一页| 亚洲欧美一区二区三区情侣bbw| 欧美成人精品h版在线观看| 播播国产欧美激情| 精品日韩美女的视频高清| 国产精品jvid在线观看蜜臀| 亚洲色图欧美制服丝袜另类第一页| 欧美日韩中文字幕在线视频| 亚洲精品国产综合久久| 欧美电影在线观看完整版| 欧美丝袜一区二区三区| 麻豆国产va免费精品高清在线| 欧美激情精品久久久久久大尺度| 日韩一区二区av| 亚洲成人av中文字幕| 一区二区三欧美| 91国内揄拍国内精品对白| 国产精品久久久久久久av电影| 97色在线观看免费视频| 久久在精品线影院精品国产| 美女福利精品视频| 中文字幕九色91在线| 国产va免费精品高清在线观看| 亚洲国产精品中文| 国产一区二区三区网站| 亚洲一区二区三区四区视频| 亚洲成成品网站| 狠狠躁夜夜躁人人躁婷婷91| 国产69精品久久久久9| 日韩国产精品一区| 日韩欧美中文字幕在线观看| 狠狠爱在线视频一区| 亚洲黄色片网站| 久久久久久久一| 亚洲自拍偷拍网址| 欧美色视频日本高清在线观看| 亚洲电影免费观看高清完整版| 97精品国产97久久久久久| 国产精品黄色影片导航在线观看| 国产精品福利片| 成人激情视频在线播放| 亚洲九九九在线观看| 最近中文字幕日韩精品| 欧美影院成年免费版| www.亚洲男人天堂| 亚洲成人网在线观看| 亚洲天堂免费观看| 538国产精品一区二区在线| 亚洲欧洲日产国码av系列天堂| 亚洲精品视频二区| 久久99久久亚洲国产| 国产91精品久久久久久久| 中文字幕自拍vr一区二区三区| 美乳少妇欧美精品| 久久久久久久亚洲精品| 国产精品久久在线观看| 国产精品视频一区二区三区四| 亚洲精品国精品久久99热| 欧美日韩国产激情| 国产成人精品电影久久久| 精品国内产的精品视频在线观看| 亚洲理论片在线观看| 国产男女猛烈无遮挡91| 亚洲91精品在线| 欧美性做爰毛片| 国产欧美日韩免费看aⅴ视频| 欧美在线精品免播放器视频| 精品视频在线播放免| 欧美性色xo影院| 97色在线视频观看| 亚洲影视中文字幕| 国产欧美一区二区三区在线| 欧美日韩国产中文字幕| 国产福利成人在线| 久久中文字幕视频| 国产精品7m视频| 亚洲欧美一区二区三区四区| 亚洲精品久久视频| 亚洲精品一区二三区不卡| 亚洲国产成人av在线| 亚洲精品国产品国语在线| 法国裸体一区二区| 美女视频黄免费的亚洲男人天堂| 久久精品国产久精国产一老狼| 亚洲第一视频网站| 精品日韩视频在线观看| 亚洲午夜性刺激影院| 久久久免费在线观看| 日韩欧美在线视频免费观看| 日韩午夜在线视频| 欧美国产第二页| 97在线视频国产| 欧美性色19p| 中文字幕亚洲综合久久筱田步美|