Vue2 全家桶仿 微信App 项目,支持多人在线聊天和机器人聊天

前言

这个项目是利用工作之余写的一个模仿微信app的单页面应用,整个项目包含27个页面,涉及实时群聊,机器人聊天,同学录,朋友圈等等,后续页面还是开发中。写这个项目主要目的是练习和熟悉vue和vuex的配合使用,利用socket.io实现实时聊天。

技术栈

vue2+vue-router+webpack+vuex+sass+svg构图+es6/7

源码地址

源码地址:https://github.com/bailichen/vue-weixin

项目运行

git clone https://github.com/bailichen/vue-weixin.git

cd vue-weixin

npm install

npm run dev (访问本地,运行后访问 http://localhost:8882)

效果演示

项目演示请点击这里 (请用chrome手机模式预览)

说明

本项目主要用于熟悉vue2+vuex的用法

目标功能

  • [x] 微信
  • [x] 通讯录
  • [x] 发现
  • [x] 我
  • [x] 设置
  • [x] 新消息提醒
  • [x] 勿扰模式
  • [x] 聊天
  • [x] widows 微信已登录
  • [x] 搜索页
  • [x] 对话页
  • [x] 对话功能
  • [x] 单人机器人智能对话页
  • [x] 群聊
  • [x] 朋友圈
  • [x] 朋友圈点赞、评论
  • [x] 个人中心
  • [x] 详细资料
  • [x] 更多
  • [x] 个人相册
  • [x] 更多
  • [x] 收藏
  • [x] 我的钱包
  • [x] 购物
  • [x] 设置
  • [x] 登录

项目布局

├── README.md                                    // webpack配置文件
├── build                                        // 项目打包路径
├── config                                       // 上线项目文件,放在服务器即可正常访问
│   └── index.js
├── favicon.ico
├── index.html
├── package.json
├── printscreen
├── src                                          // 源码目录
│   ├── App.vue                                  // 页面入口文件
│   ├── components                               // 公共组件
│   │   ├── findandMe
│   │   │   └── findandMe.vue                    // 发现和我共同的模块的列表
│   │   ├── footer
│   │   │   └── foot.vue                         // 底部微信导航
│   │   └── header
│   │       └── head.vue                         // 头部公共组件
│   ├── config                                   // 基本配置
│   │   ├── env.js                               // 环境切换配置
│   │   ├── fetch.js                             // 获取数据
│   │   ├── iscroll.js 
│   │   ├── mUtils.js                            // 工具
│   │   ├── rem.js                               // px转换rem
│   │   ├── swiper.min.js                        // 轮播图控件
│   │   └── uploadPreview.js                     // 上传图片控件
│   ├── frames
│   │   ├── addressbook
│   │   │   ├── addressbook.vue                  // 通讯录
│   │   │   └── details
│   │   │       ├── details.vue                  // 详细资料
│   │   │       └── more
│   │   │           └── more.vue                 // 更多
│   │   ├── computer
│   │   │   └── computer.vue                     // pc端登录
│   │   ├── conversation
│   │   │   ├── chatmessage
│   │   │   │   ├── chatmessage.vue              // 单人聊天信息
│   │   │   │   └── groupchatmessage.vue         // 群聊聊天信息
│   │   │   ├── groupchat.vue                    // 群聊
│   │   │   └── singlechat.vue                   // 单人对话
│   │   ├── dialogue
│   │   │   └── dialogue.vue                     // 微信首页(对话列表页)
│   │   ├── find
│   │   │   ├── find.vue                         // 发现
│   │   │   ├── friendcircle
│   │   │   │   └── friendcircle.vue             // 朋友圈
│   │   │   └── miniapps
│   │   │       └── miniapps.vue                 // 小程序子页面
│   │   ├── me
│   │   │   ├── cardbag
│   │   │   │   └── cardbag.vue                  // 卡包
│   │   │   ├── collect
│   │   │   │   └── collect.vue                  // 我的收藏
│   │   │   ├── me.vue
│   │   │   ├── personaldetails
│   │   │   │   └── personaldetails.vue          // 个人信息
│   │   │   ├── photoalbum
│   │   │   │   └── photoalbum.vue               // 我的相册
│   │   │   ├── settings
│   │   │   │   ├── detailset
│   │   │   │   │   ├── aboutwc.vue              // 关于微信
│   │   │   │   │   ├── chat.vue                 // 聊天
│   │   │   │   │   ├── currency.vue             // 通用
│   │   │   │   │   ├── disturbance.vue          // 勿扰模式
│   │   │   │   │   ├── help.vue                 // 帮助与反馈
│   │   │   │   │   ├── login.vue                // 登录
│   │   │   │   │   ├── newmessage.vue           // 新消息提醒
│   │   │   │   │   └── privacy.vue              // 隐私
│   │   │   │   └── settings.vue                 // 设置
│   │   │   └── wallet
│   │   │       └── wallet.vue                   // 我的钱包
│   │   ├── search
│   │   │   └── search.vue                       // 搜索
│   │   └── transfer
│   │       └── transfer.vue
│   ├── images
│   ├── main.js                                  // 程序入口文件,加载各种公共组件
│   ├── router
│   │   └── router.js                           // 所有页面路由控制中心
│   ├── service
│   │   ├── data
│   │   │   ├── album.js                        // 个人相册
│   │   │   ├── burse.js                        // 钱包数据
│   │   │   ├── chatmore.js
│   │   │   ├── collect.js                     // 我的收藏
│   │   │   ├── contacts.js                    // 联系人列表数据
│   │   │   ├── dialoglist.js                  // 对话列表
│   │   │   ├── friendcircle.js                // 朋友圈数据
│   │   │   ├── groupchat.js                   // 群聊数据
│   │   │   ├── login.js                       // 个人用户信息
│   │   │   ├── search.js                      // 搜索的分类
│   │   │   └── userword.js
│   │   └── getData.js                         // 数据交互统一调配
│   ├── style
│   │   ├── public.scss                        // 公共样式
│   │   └── swiper.min.css
│   └── vuex                                   // vuex的状态管理
│       ├── action.js                          // 配置根actions
│       ├── index.js                           // 引用vuex,创建store
│       ├── mutation-types.js                  // 定义常量muations名
│       └── mutation.js                        // 配置根mutations
└── tree.md

36 directories, 133 files

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

「大众点评点餐」小程序开发经验 01:概述

1494
来自专栏编程微刊

SEO那些事:一句代码一键分享网站

1552
来自专栏Flutter入门到实战

跨平台开发框架和工具集锦

本文版权归作者AWeiLoveAndroid所有,未经授权,严禁私自转载。转载请声明原文链接和作者信息。

793
来自专栏假装我会写代码

两行代码实现一个地址选择器

1152
来自专栏haifeiWu与他朋友们的专栏

个人博客折腾记

个人博客,也折腾了3年多了吧,不说已经特别稳定了,但起码也做成了自己满意样子,后续还需要继续调整。虽然现在的博客看似简单,并且用的模板,但在博客的这条路上也花了...

801
来自专栏Java架构师历程

前端页面布局控件

是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。https://weui.io/

963
来自专栏黑白安全

跨站点脚本(XSS)攻击

跨站点脚本(XSS)是一种常见的攻击媒介,可将恶意代码注入易受攻击的Web应用程序。XSS不同于其他网络攻击媒介(例如SQL注入),因为它不直接针对应用程序本身...

451
来自专栏Web项目聚集地

Spring MVC+Spring+Mybatis搭建图书管理系统

本项目为图书管理系统,后端使用ssm框架、前端使用主流的layui,利用Maven工具管理Jar包搭建项目,此项目作者为「陈豪」,作者本人独立开发,仅用于学习使...

912
来自专栏编程微刊

移动端常用的四个框架

1442
来自专栏极乐技术社区

【微信小程序】从入门到放弃

前言 关于微信小程序是什么,能做什么的问题,草民在此不在罗列了,随着小程序的天天刷屏,想必您也是来吃一些干货,本篇博文和大家走进微信小程序的从入门到放弃~ 微信...

2857

扫码关注云+社区