最近一段时间一直在学习vue框架,对比了下react和angular发现vue上手快多了,之前有使用vue开发个vue版仿微信手机端IM聊天,最近想继续加强学习下,就做了一版网页端的vue聊天室。

依然是基于vue全家桶技术实现开发的,新增的右键菜单及弹窗均是自己开发的插件。

/*

* 主页面js

*/

import Vue from 'vue'

import App from './App.vue'

import router from './router'

import store from './vuex'

// 引入公共Js

import './common.js'

// 引入全局组件

// 方式一:

// Vue.component('headerBar', resolve => require(['./common/header'], resolve))

// Vue.component('tab-bar', resolve => require(['./common/footer'], resolve))

// 方式二:

import _g_component from './components.js'

Vue.use(_g_component)

new Vue({

el: '#app',

router,

store,

render: h => h(App)

})

/*

引入公共及全局组件配置

Q:282310962

https://www.cnblogs.com/xiaoyan2017

*/

// 引入侧边栏及联系人

import winBar from './components/winbar'

import sideBar from './components/sidebar'

import recordList from './components/recordList'

import contactList from './components/contact'

// 引入jquery

import $ from 'jquery'

// 引入wcPop弹窗插件

import wcPop from './assets/js/wcPop/wcPop'

import './assets/js/wcPop/skin/wcPop.css'

// 引入饿了么pc端UI库

import elementUI from 'element-ui'

import 'element-ui/lib/theme-chalk/index.css'

// 引入图片预览插件

import photoPreview from 'vue-photo-preview'

import 'vue-photo-preview/dist/skin.css'

// 引入自定义滚动条插件

import geminiScrollbar from 'vue-gemini-scrollbar'

// 引入加载更多插件

import infiniteLoading from 'vue-infinite-scroll'

// 引入高德地图

import vueAMap from 'vue-amap'

const install = Vue => {

// 注册组件

Vue.component('win-bar', winBar)

Vue.component('side-bar', sideBar)

Vue.component('record-list', recordList)

Vue.component('contact-list', contactList)

// 应用实例

Vue.use(elementUI)

Vue.use(photoPreview, {

loop: false,

fullscreenEl: true, //是否全屏

arrowEl: true, //左右按钮

});

Vue.use(geminiScrollbar)

Vue.use(infiniteLoading)

Vue.use(vueAMap)

vueAMap.initAMapApiLoader({

key: "e1dedc6bdd765d46693986ff7ff969f4",

plugin: [

"AMap.Autocomplete", //输入提示插件

"AMap.PlaceSearch", //POI搜索插件

"AMap.Scale", //右下角缩略图插件 比例尺

"AMap.OverView", //地图鹰眼插件

"AMap.ToolBar", //地图工具条

"AMap.MapType", //类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制

"AMap.PolyEditor", //编辑 折线多,边形

"AMap.CircleEditor", //圆形编辑器插件

"AMap.Geolocation" //定位控件,用来获取和展示用户主机所在的经纬度位置

],

uiVersion: "1.0"

});

}

export default install

/*

* 页面地址路由js

*/

import Vue from 'vue'

import Router from 'vue-router'

import store from '../vuex'

// 通过改写router.go方法,当new Router 实例就包含back方法

Router.prototype.back = function(){

window.history.go(-1)

}

Vue.use(Router)

const router = new Router({

routes: [

// 登录、注册

{

path: '/login',

component: resolve => require(['../views/auth/login'], resolve),

meta: { hideSideBar: true },

},

{

path: '/register',

component: resolve => require(['../views/auth/register'], resolve),

meta: { hideSideBar: true },

},

// 首页、通讯录、动态圈

{

path: '/',

redirect: '/chat',

component: resolve => require(['../views/index'], resolve),

meta: { requireAuth: true },

},

{

path: '/contact',

redirect: '/contact/new-friends',

component: resolve => require(['../views/contact'], resolve),

meta: { requireAuth: true },

},

...

]

});

// 注册全局钩子(拦截登录状态)

router.beforeEach((to, from, next) => {

const token = store.state.token

// 判断该路由地址是否需要登录权限

if(to.meta.requireAuth){

// 判断token是否存在

if(token){

next()

}else{

next()

// 未登录授权

wcPop({

content: '还未登录授权!', anim: 'shake', style: 'background:#e03b30;color:#fff;', time: 2,

end: function(){

next({ path: '/login' })

}

});

}

}else{

next()

}

})

export default router

欢迎使用Vue-webChat

登录

忘记密码

注册用户

vue网页端聊天室 ▪ vueWebChat v1.0

import { setToken, checkTel } from '../../utils/filters'

export default {

data () {

return {

formObj: {}

}

},

methods: {

handleSubmit(){

// console.log(this.formObj)

// console.log(JSON.stringify(this.formObj))

var that = this;

if(!this.formObj.tel){

wcPop({ content: '手机号不能为空!', style: 'background:#e03b30;color:#fff;', time: 2 });

}else if(!checkTel(this.formObj.tel)){

wcPop({ content: '手机号格式不正确!', style: 'background:#e03b30;color:#fff;', time: 2 });

}else if(!this.formObj.pwd){

wcPop({ content: '密码不能为空!', style: 'background:#e03b30;color:#fff;', time: 2 });

}else{

this.$store.commit('SET_TOKEN', setToken());

this.$store.commit('SET_USER', this.formObj.tel);

wcPop({

content: '登录成功,跳转中...', style: 'background:#41b883;color:#fff;', time: 2, shadeClose: false,

end: function(){

that.$router.push('/');

}

});

}

}

}

}

本作品采用《CC 协议》,转载必须注明作者和本文链接

本文为原创文章,未经作者允许不得转载,欢迎大家一起交流 QQ(282310962) wx(xy190310)

vue仿微博评论回复_vue 网页版聊天系统|仿微信、微博网页端相关推荐

  1. vue仿微博评论回复_Vue之 3.0升级

    阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了Vue之菜单权限控制的知识,今天跟大家分享下Vue之3. ...

  2. 微信个人网页版API的微信机器人

    微信个人网页版API的微信机器人, github 上有很多轮子了,来一个 electron-vue 版的,完全开源 github 项目地址 https://github.com/joehecn/j 安 ...

  3. 如何打印网页版的发票_梦幻西游网页版:陷入瓶颈期,如何快速提升战力?氪金能解决问题...

    在梦幻西游网页版中,战力的高低直接影响着玩家的游戏体验,因此大家都将注意力放到了这上面.然而,提升战力并非易事,随着等级越来越高,难度也会逐渐提升.前不久,就有一位玩家遇到了麻烦,据他描述,目前的战力 ...

  4. 梦幻西游网页版服务器互通吗,梦幻西游网页版:关于合服的那些事儿~最全信息都在这了...

    <梦幻西游网页版>有没有合服?答案是肯定的.合服之后会发生什么?就让骨妹来告诉你. 每周二下午14:00,不仅是全服的例行维护时间,也是部分服务器的正式合服时刻.当你的服务器要合服时,会提 ...

  5. b站网页版没有html,b站网页版

    摘要 腾兴网为您分享:谷歌浏览器xp版,神灯,老友记台词中英文对照,宝藏世界,卤菜论坛,文通写字板,真二网郑州二手房,家庭好医生,文件批量重命名工具,内存卡大师,这一刻,上海农商银行信用卡,图文识字, ...

  6. facebook网页版登录_微信网页版关闭登录将影响一大批使用itchat等Web Api方案的微信机器人...

    微信网页版限制登录或禁止登录将影响一大批使用itchat等Web Api方案的微信机器人 网页版微信 API 被封了,像使用 itchat wxpy wxbot等基于 web API 的微信 robo ...

  7. PC端抖音HTML布局,从抖音网页版上线、微信PC版可发朋友圈,看互联网「全端化」布局...

    三哥觉得,不管是用户价值,还是商业价值,都极大. 先说用户价值. 比如,当你在用电脑期间,想发或看朋友圈,之前只能打开手机进行操作,这很割裂,现在直接在电脑上完成了,很顺畅. 短视频.娱乐视频,适合手 ...

  8. 韩国 kakaotalk web网页版第三方登录示例 kakaotalk网页版

    韩国 kakaotalk web网页版第三方登录示例 先跳转 授权 https://kauth.kakao.com/oauth/authorize?client_id="+restApi+& ...

  9. python手机远程控制电脑访问网页_Python 实战系列-微信或网页远程控制电脑

    Python 实战系列-微信或网页远程控制电脑 本系列课程为Python实战系列课程:使用微信控制电脑,使用Python的Web框架Flask搭建网页, 并使用网页控制电脑:使用wxPython编写图 ...

最新文章

  1. python使用ddt_python使用ddt模块对用例执行操作
  2. 《Language Implementation Patterns》之访问重写语法树
  3. 一张图看懂华为计算全联接2020
  4. flash调用摄像头弹出设置框监听
  5. 计算与推断思维 三、Python 编程
  6. 2017年上海市计算机一级题库,2017年计算机一级题库及答案
  7. 【爬虫】编码问题总结
  8. 小暑海报文案|小暑海报设计图片素材
  9. 多个数求最小公倍数详解!
  10. 《Linux运维总结:SVN提示Node remains in conflict解决办法》
  11. 游戏后台生成唯一ID
  12. Rouge | 自动文摘及机器翻译评价指标
  13. Android如何定时开机代码,Android定时开机的流程详解
  14. 使用python管理百度云存储
  15. matlab绘制单摆相图,单摆相图绘制
  16. 从零开始构建矽璓工业物联操作系统:使用risc-v架构的HiFive1 Rev B 开发板
  17. 关于QII11.1中管脚分配的.csv文件
  18. StramApi常用操作
  19. 2009-04-18一件很有成就感的事
  20. 基于springboot的医院后勤管理系统毕设

热门文章

  1. 拉格朗日插值python实现
  2. 赚了!用Python写爬虫,月赚49K!
  3. 商鼎云 | 你的数据管家
  4. web前端开发面试题(九)
  5. 接之前的PDF转换,需求批量PDF导出压缩包
  6. AD转换中通道的概念
  7. UE5导入自定义MetaHuman虚拟人和服装并联动
  8. 电动助力转向系统发展趋势
  9. Data truncation: Incorrect date value这个问题解决方式
  10. 【基础知识思考整理 】Zero-copy原理理解(用户角度)