今天就跟大家聊聊有關(guān)vuejs如何實(shí)現(xiàn)聊天界面,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司是專業(yè)的庫倫網(wǎng)站建設(shè)公司,庫倫接單;提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行庫倫網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
vuejs實(shí)現(xiàn)聊天界面的方法:1、通過執(zhí)行“npm install”安裝dependencies;2、通過“scrollLoader.vue”實(shí)現(xiàn)滾動(dòng)加載數(shù)據(jù);3、修改main.js;4、設(shè)置App.vue中的參數(shù)即可。
本文操作環(huán)境:Windows7系統(tǒng)、vue2.9.6版,DELL G3電腦。
vuejs怎么實(shí)現(xiàn)聊天界面?
Vue.js仿微信聊天窗口展示組件功能
源碼:https://github.com/doterlin/vue-wxChat
演示地址:https://doterlin.github.io/vue-wxChat/
運(yùn)行
# install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production with minification npm run build
介紹
支持文本和圖片的展示(后續(xù)將支持對(duì)語音類的展示)。
支持滾動(dòng)加載數(shù)據(jù),其中滾動(dòng)加載依賴我另外一個(gè)組件scrollLoader.vue(《Vue.js上下滾動(dòng)加載組件》)。
支持QQ表情,為了能使用表情請(qǐng)全局注冊(cè)指令v-emotion,我在main.js做了實(shí)現(xiàn);代碼如下:
function toEmotion(text, isNoGif){ var list = ['微笑', '撇嘴', '色', '發(fā)呆', '得意', '流淚', '害羞', '閉嘴', '睡', '大哭', '尷尬', '發(fā)怒', '調(diào)皮', '呲牙', '驚訝', '難過', '酷', '冷汗', '抓狂', '吐', '偷笑', '愉快', '白眼', '傲慢', '饑餓', '困', '驚恐', '流汗', '憨笑', '大兵', '奮斗', '咒罵', '疑問', '噓', '暈', '折磨', '衰', '骷髏', '敲打', '再見', '擦汗', '摳鼻', '鼓掌', '糗大了', '壞笑', '左哼哼', '右哼哼', '哈欠', '鄙視', '委屈', '快哭了', '陰險(xiǎn)', '親親', '嚇', '可憐', '菜刀', '西瓜', '啤酒', '籃球', '乒乓', '咖啡', '飯', '豬頭', '玫瑰', '凋謝', '示愛', '愛心', '心碎', '蛋糕', '閃電', '炸彈', '刀', '足球', '瓢蟲', '便便', '月亮', '太陽', '禮物', '擁抱', '強(qiáng)', '弱', '握手', '勝利', '抱拳', '勾引', '拳頭', '差勁', '愛你', 'NO', 'OK', '愛情', '飛吻', '跳跳', '發(fā)抖', '慪火', '轉(zhuǎn)圈', '磕頭', '回頭', '跳繩', '揮手', '激動(dòng)', '街舞', '獻(xiàn)吻', '左太極', '右太極', '嘿哈', '捂臉', '奸笑', '機(jī)智', '皺眉', '耶', '紅包', '雞']; if (!text) { return text; } text = text.replace(/\[[\u4E00-\u9FA5]{1,3}\]/gi, function(word){ var newWord = word.replace(/\[|\]/gi,''); var index = list.indexOf(newWord); var backgroundPositionX = -index * 24 var imgHTML = ''; if(index<0){ return word; } if (isNoGif) { if(index>104){ return word; } imgHTML = `` } else { var path = index>104 ? '/img' : 'https://res.wx.qq.com/mpres/htmledition/images/icon'; imgHTML = `![](${path}/emotion/${index}.gif)` } return imgHTML; }); return text; } Vue.directive('emotion', { bind: function (el, binding) { el.innerHTML = toEmotion(binding.value) } });
如何使用?
參數(shù)已經(jīng)在組件中做了說明,并在App.vue
中做了演示:
參數(shù)和說明:
微信聊天可視化組件
依賴scrollLoader組件, 依賴指令v-emotion(實(shí)現(xiàn)請(qǐng)查看main.js)
參數(shù):
width 組件寬度,默認(rèn)450
wrapBg 外層父元素背景顏色,默認(rèn)#efefef
maxHeight 展示窗口最高高度, 默認(rèn)900
contactAvatarUrl 好友頭像url
ownerAvatarUrl 微信主人頭像url
ownerNickname 微信主人昵稱
getUpperData (必需)當(dāng)滾動(dòng)到上方時(shí)加載數(shù)據(jù)的方法,返回值要為Promise對(duì)象,resolve的結(jié)構(gòu)同data
getUnderData (必需)當(dāng)滾動(dòng)到下方時(shí)加載數(shù)據(jù)的方法,返回值同上
data (必需)傳入初始化數(shù)據(jù), 結(jié)構(gòu)如下:
[{ direction: 2, //為2表示微信主人發(fā)出的消息,1表示聯(lián)系人 id: 1, //根據(jù)這個(gè)來排序消息 type: 1, //1為文本,2為圖片 content: '你好!![呲牙]', //當(dāng)type為1時(shí)這里是文本消息,當(dāng)type2為2時(shí)這里要存放圖片地址;后續(xù)會(huì)支持語音的顯示 ctime: new Date().toLocaleString() //顯示當(dāng)前消息的發(fā)送時(shí)間 }, { direction: 1, id: 2, type: 1, content: '你也好。[害羞]', ctime: new Date().toLocaleString() }]
完整的使用實(shí)例
效果:https://doterlin.github.io/vue-wxChat/
代碼:
//主文件,對(duì)wxChat的用法做示例
看完上述內(nèi)容,你們對(duì)vuejs如何實(shí)現(xiàn)聊天界面有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。