uniapp仿微信聊天室|仿微信界面

项目介绍

基于uniapp+vue仿微信聊天室uniapp-chatroom项目,实现了发送图文消息、表情(gif动图),图片预览、地图位置、红包、仿微信朋友圈等功能。

效果预览

如下图:H5/小程序/App端测试效果
uniapp仿微信聊天室|仿微信界面

技术栈

  • 编辑器:HBuilder X
  • 技术框架:uni-app + vue +vuex
  • 弹窗组件:uniPop(基于uni-app封装模态弹窗)
  • 测试环境:H5端 + 小程序 + App端(三端均兼容)

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

uniapp仿微信聊天室|仿微信界面

引入公共组件及样式main.js

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)
        },
        ...
    },
})
<script>
    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) {
                ...
            }
        }
    }
</script>

好了,今天的分享就到这里,后续会继续分享一些项目实例,希望大家能喜欢~~

上一篇:两个实用的SQL高级函数


下一篇:vue仿微信界面聊天室项目|vue聊天案例