亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

基于Vue2實現(xiàn)的仿手機QQapp(支持對話功能,滑動刪除....)—— 聊聊開發(fā)過程中踩到的一些坑

williamwen1986 / 728人閱讀

摘要:使用進行的仿手機的的制作,在上,參考了設(shè)計師的作品,作品由個人獨立開發(fā),源碼中進行了詳細(xì)的注釋。關(guān)于接入聊天機器人遇到的跨域問題起初,天真的以為官方應(yīng)該提供了用的接口,然而沒有找到。

使用Vue2進行的仿手機QQ的webapp的制作,在ui上,參考了設(shè)計師kaokao的作品,作品由個人獨立開發(fā),源碼中進行了詳細(xì)的注釋。 由于自己也是初學(xué)Vue2,所以注釋寫的不夠精簡,請見諒。

目前已實現(xiàn): 整體數(shù)據(jù)的流動,接入聊天機器人,信息左滑刪除,個人信息側(cè)邊欄, 搜索好友功能.....

項目地址: https://github.com/jiangqizhe...

動態(tài)圖預(yù)覽

側(cè)邊欄與個人主頁

滑動刪除

對話功能

搜索

整體ui

以上是項目介紹,后面就進入正題,聊聊開發(fā)過程中踩到的一些坑,解決方案,以及個人感悟 關(guān)于踩到的坑與解決方案

一像素
解決方案有好幾種,本來想著用css3縮放解決,后來仔細(xì)看了看效果,突然發(fā)現(xiàn)用不到1px邊線,于是不了了之。

布局,兼容性
主要采用flex布局,參考阮一峰老師的Flex 布局教程。

單位
由于懶,所以使用了 vh,vw,感覺吧,兼容性好像也沒啥大問題。

關(guān)于輸如文字時,軟鍵盤彈出,遮擋底部輸入框
使用scrollIntoView()方法,在輸入框獲得焦點時,設(shè)置定時器執(zhí)行scrollIntoView(false),輸入框失去焦點時清除定時器,完美解決。

關(guān)于聊天時對話內(nèi)容保持在底部
不知道為啥,scrollTop的值一直是0,斷了我想用js控制內(nèi)容滾動的想法。于是索性在最下方設(shè)置了一錨點,在每次輸入信息或者組件更新時,模擬點擊錨點,這樣就使聊天界面一直保持在最下方了......方法雖然粗暴,但奈何實用,并且暫時未找到scrollTop一直為0的原因(。

關(guān)于接入聊天機器人api遇到的跨域問題
起初,天真的以為官方應(yīng)該提供了jsonp用的接口,然而沒有找到。但是問題總是要解決的,功能也得實現(xiàn),于是就在webpack的零時Dev中寫了向機器人api的請求,把webapp起的零時服務(wù)器做中轉(zhuǎn)層,然后前端代碼直接請求webapp服務(wù)器提供的api,這樣就完美的避開的跨域限制。(項目中用的聊天機器人是圖靈機器人,有需要的自行百度)

關(guān)于監(jiān)聽for循環(huán)渲染dom內(nèi)容是否完成
產(chǎn)生這個需求后,找到了一個方法,nextTick()在下次 DOM 更新循環(huán)結(jié)束之后執(zhí)行延遲回調(diào),然后發(fā)現(xiàn)在遇到的場景中好像,并沒有產(chǎn)生應(yīng)有的效果,可能是我代碼錯誤,所以為了偷懶,就暫時設(shè)置了一個延時一秒執(zhí)行的定時器,后續(xù)會做出修改。

關(guān)于左滑刪除
把父級寬度設(shè)置為120%然后左右浮動內(nèi)容,監(jiān)聽touchstarttouchmove事件

關(guān)于Vue不能檢測利用索引直接修改的數(shù)組中值的變動
在看教程時對于這部分,沒有太過在意,以至于后面實際寫的時候,不知道哪里出了問題,于是回頭翻萬能的教程,發(fā)現(xiàn),竟然不能用索引更改數(shù)組中的值,于是恍然大悟....得用splice()

關(guān)于ui的一些吐槽
項目中使用的ui是muse-ui,使用它純粹是因為感覺跟設(shè)計稿挺搭,在此之前沒有使用過(之前使用的是餓了嗎的輪子),實際使用時發(fā)現(xiàn)一些小問題,ui的很多接口沒有提供,例如,想在輸入框上設(shè)置事件,想要對avatar組件中的圖片設(shè)置懶加載等...。以至于想要去修改ui組件,另外muse提供了單組件的加載,但是由于是個人作品。主要做測試用,所以就直接整體引入了。

還有些其他零零碎碎的大小問題,反正這倆天谷歌百度頻率明顯有了增加

個人感悟

主要是對vuex理解了很多,在此之前,只寫過一些簡單的小例子,當(dāng)時認(rèn)為,vuex(Flux 架構(gòu))好像有種多此一舉的感覺,但是在這個個人項目中,由于數(shù)據(jù)量的增加導(dǎo)致了復(fù)雜度的幾何度增加,使得Vuex成為了我的必需品,難以想象如果組件間的數(shù)據(jù)通信還是使用父子間通信,或者設(shè)置一個數(shù)據(jù)中心的方法,會是怎么的混亂。

Flux 架構(gòu)就像眼鏡:您自會知道什么時候需要它。

最后,由于作者只是個新手,所以歡迎交流,寫這篇文章的內(nèi)容也是希望能夠幫助到一些,正在學(xué)習(xí)vue中的小伙伴們,另外希望給個Star,作為第一次寫較復(fù)雜的個人demo的我來說,還是比較希望得到大家的認(rèn)可。

項目地址: https://github.com/jiangqizhe...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/82209.html

相關(guān)文章

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<