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

2017-06-19 09:56:47 +08:00
 aos

前言

这个项目是利用工作之余写的一个模仿微信 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 的用法

如有问题请直接在 Issues 中提出,或加 qq:812571880

如果觉得对您学习 vue 有点点帮助,请右上角 star 一下吧 ^_^

目标功能

页面部分截图

单人聊天

群聊

朋友圈

项目布局


├── 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

21117 次点击
所在节点    程序员
56 条回复
lhx2008
2017-06-19 13:03:41 +08:00
看到好多功能都没做,现在感觉微信还是挺复杂的
aos
2017-06-19 13:57:22 +08:00
@lhx2008 微信的确非常多的细节,目前只是初始版本,慢慢会支持更多功能
XuweiatTuSDK
2017-06-19 14:04:04 +08:00
666666666
fuliti
2017-06-19 14:04:33 +08:00
66666666
badcode
2017-06-19 14:09:21 +08:00
呀呀呀呀呀呀呀
onyourroad
2017-06-19 15:23:41 +08:00
6666666666
lj61785636
2017-06-19 15:36:55 +08:00
6666
SPACELAN
2017-06-19 16:03:37 +08:00
666666
ae86
2017-06-19 16:41:24 +08:00
666666
lrh3321
2017-06-19 17:37:34 +08:00
厉害了
fudanglp
2017-06-19 18:14:18 +08:00
666666
mengyaoss77
2017-06-19 18:26:39 +08:00
厉害了 抱拳了老铁
wenning
2017-06-19 19:49:36 +08:00
6666
Betacoefficient
2017-06-19 19:57:59 +08:00
好棒啊,灰常的有用啊
bozong
2017-06-19 20:12:25 +08:00
66666666666666666666
Ultraman
2017-06-19 20:22:43 +08:00
demo 是被那个智障刷挂了吗?我打不开了
tf141
2017-06-19 20:41:13 +08:00
强无敌
zonghua
2017-06-19 20:44:17 +08:00
有没有空把每个像素和动画的每一帧都高仿啊,这个好多地方多了空白线 b ( ̄▽ ̄) d
nVic
2017-06-19 21:02:35 +08:00
现在的微信过于复杂了,应该被换代。。。
aos
2017-06-19 22:02:03 +08:00
@vcinex 已经加上限制了,可以正常访问了,那家伙太无聊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/369449

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX