日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue整合uniapp_uni-app仿微信App界面|vue+uniapp聊天室|仿微信朋友圈

發布時間:2024/3/12 vue 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue整合uniapp_uni-app仿微信App界面|vue+uniapp聊天室|仿微信朋友圈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目簡介

基于uni-app+vue+vuex+uniPop+swiper等技術開發的仿微信聊天室uniapp-chatroom項目,類似vue及小程序api語法使開發更加方便,實現了發送圖文消息、表情(gif動圖),圖片預覽、地圖位置、紅包、仿微信朋友圈等功能

效果圖

在H5 / 小程序 / App端測試效果如下 (后續大圖統一展示App端)

技術實現

編輯器:HBuilder X

技術框架:uni-app + vue

狀態管理:Vuex

iconfont圖標:阿里字體圖標庫

自定義導航欄 + 底部Tabbar

彈窗組件:uniPop(基于uni-app封裝模態彈窗)

測試環境:H5端 + 小程序 + App端(三端均兼容)

高德地圖:vue-amap

引入公共組件及樣式

import Vue from 'vue'

import App from './App'

// >>>引入css

import './assets/fonts/iconfont.css'

import './assets/css/reset.css'

import './assets/css/layout.css'

// >>>引入狀態管理

import store from './store'

Vue.prototype.$store = store

// >>>引入公共組件

import headerBar from './components/header/header.vue'

import tabBar from './components/tabbar/tabbar.vue'

import popupWindow from './components/popupWindow.vue'

Vue.component('header-bar', headerBar)

Vue.component('tab-bar', tabBar)

Vue.component('popup-window', popupWindow)

// >>>引入uniPop彈窗組件

import uniPop from './components/uniPop/uniPop.vue'

Vue.component('uni-pop', uniPop)

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({

...App

})

app.$mount()

uniapp+vuex實現登錄攔截

import Vue from 'vue'

import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({

state: {

user: uni.getStorageSync('user'),

token: uni.getStorageSync('token'),

},

mutations: {

// 存儲token

SET_TOKEN(state, data) {

state.token = data

uni.setStorageSync('token', data)

},

// 存儲用戶名

SET_USER(state, data) {

state.user = data

uni.setStorageSync('user', data)

},

...

},

})

import { mapState, mapMutations } from 'vuex'

import util from '../../utils/util.js'

export default {

data() {

return {

formObj: {},

}

},

computed: {

...mapState(['user', 'token'])

},

mounted() {

// 判斷是否有登錄

if(this.user){

uni.redirectTo({url: '/pages/index/index'})

}

},

methods: {

// 提交表單

handleSubmit(e) {

...

}

}

}

uniapp實現朋友圈功能

如何實現微信朋友圈頁面向下滾動,頂部導航欄由透明變背景色,通過onPageScroll函數實現自定義導航上下滑動自動調整導航欄的透明度

/**

* @tpl 朋友圈模板

*/

...

export default {

data() {

return {

headerBarBackground: 'transparent'

}

},

onPageScroll : function(e) {

// console.log("滾動距離為:" + e.scrollTop);

this.headerBarBackground = 'rgba(65,168,99,'+e.scrollTop / 200+')'

},

methods: {

...

}

}

uniapp滾動至聊天頁面底部

在uni-app將聊天信息滾動到底部有些不好實現,可以借助scroll-view組件scroll-into-view屬性,不過只能設置一次,不能動態設置。

只能通過動態改變scroll-top來實現

uni-app通過判斷聊天內容高度和scroll-view高度的大小設置滾動距離

xxx

xxx

xxx

...

export default {

data() {

return {

scrollTop: 0,

...

}

},

mounted() {

this.scrollToBottom()

},

updated() {

this.scrollToBottom()

},

methods: {

// 滾動至聊天底部

scrollToBottom(t) {

let that = this

let query = uni.createSelectorQuery()

query.select('#scrollview').boundingClientRect()

query.select('#msglistview').boundingClientRect()

query.exec((res) => {

// console.log(res)

if(res[1].height > res[0].height){

that.scrollTop = res[1].height - res[0].height

}

})

},

...

}

}

基于uniapp開發聊天室的介紹就到這里,后續繼續為大家分享實戰項目,希望多多支持。😏😏

總結

以上是生活随笔為你收集整理的vue整合uniapp_uni-app仿微信App界面|vue+uniapp聊天室|仿微信朋友圈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。