基于vue2框架的机器人自动回复mini-project实例代码


Posted in Javascript onJune 13, 2017

这是一个mini-project,主要是基于vue2.0的一个移动端的机器自动回复小项目,下面是我的一个回顾总结https://github.com/xuweikang/rebotChat

1. 项目搭建

在开始该项目之前,使用vue-cli脚手架搭建整个projec

//安装vue-cli
npm install vue-cli
//初始化项目 rebotChat是我的项目名称
vue init webpack-simple rebotChat

这样我的项目结构就出来了,如下:

基于vue2框架的机器人自动回复mini-project实例代码

2. 模拟数据,命名为mockdata.json,该数据包括用户基本信息数据和聊天记录,以后所有的对话都是模拟在该mock基础上的。

 3. 在build/dev.server.js中加入对模拟数据的所有mock 

//对所有的内容数据进行mock
let appData=require('../mockdata.json');
let dialogue=appData.dialogue;
//获得聊天内容 (如果聊天id参数不存在的话就获取所有)
router.get('/dialogue', (req, res) => {
 if(req.query.id){
  for(var i=0;i<dialogue.length;i++){
  if(req.query.id==dialogue[i].id){
    res.json({
     data:dialogue[i]
    })
   }
  }
 }else{
  res.json({
     data:appData.dialogue
    })
 }

})
//获得用户信息
router.get('/user', (req, res) => {
 res.json({
  data:appData.user
 })
}) 
//接入图灵机器人接口
router.get('/tulingapi', (req, res) => {
 let response=res
 let info = req.query.message
 let userid = req.query.id
 let key = '9857cf36b0bc4a48b8ba3f976e43a4cf'
 superagent.post('http://www.tuling123.com/openapi/api')
 .send({info, userid, key})
 .end((err,res) => {
  if(err){
   console.log(err)
  }
  response.json({
   data: res.text
  })
 })
})

 4. 创建api文件夹,将所有用到的api接口全部在api的js里面定义

import axios from 'axios';
var qs = require('qs');


var instance = axios.create({
  headers: {'content-type': 'application/x-www-form-urlencoded'}
});

let base = 'http://localhost:8080/api/';

//export const requestLogin = params => { return axios.post(`${base}/login`, params).then(res => res.data); };
export const getDialog = params => { return instance.get(base+'/dialogue',{ params: params }); };
export const getUser= params => { return instance.get(base+'/user',{ params: params }); };
export const getRebotContent = params => { return instance.get('http://www.tuling123.com/openapi/api',{ params: params }); }

5.到目前为止,整个项目的api接口都已经封装完毕,接下来是对各个组件的封装和数据接口的调用,我使用的是vuex的组件通信管理,将mock的数据作为全局供每个组件使用和修改。

6.路由的配置,在路由中将所有组件进行拼装组合,正确的显示在想要的页面,至此,项目基本完成。npm run dev后,浏览器显示效果:

基于vue2框架的机器人自动回复mini-project实例代码 

基于vue2框架的机器人自动回复mini-project实例代码

总结:

该开始vue组件通信一块,使用的是bus通信,发现到了后来代码越来越臃肿,而且有很多莫名其妙的小bug,就停住了继续的项目,在项目中加入了vuex,删除已有的bus,对组件进行了一次重新的规范,虽然重新规划通信花掉了一点时间,但是确是大大降低了代码的冗余,而且思路非常清晰,就觉得自己停止现有的方式去尝试另一种方式来完成一个任务的选择是正确的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 点击按钮弹出另一页,选择值后,返回到当前页
May 26 Javascript
js函数调用的方式
May 06 Javascript
jQuery实现hover合成事件的方法
Aug 06 Javascript
深入浅出ES6之let和const命令
Aug 25 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
Jan 18 Javascript
js实现模糊匹配功能
Feb 15 Javascript
JS中图片压缩的方法小结
Nov 14 Javascript
Vue登录注册并保持登录状态的方法
Aug 17 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
Dec 14 Javascript
如何将百度地图包装成Vue的组件的方法步骤
Feb 12 Javascript
微信小程序的开发范式BeautyWe.js入门详解
Jul 10 Javascript
深究AngularJS中ng-drag、ng-drop的用法
Jun 12 #Javascript
深究AngularJS中$sce的使用
Jun 12 #Javascript
JS身份证信息验证正则表达式
Jun 12 #Javascript
用原生JS实现简单的多选框功能
Jun 12 #Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 #Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 #Javascript
AngularJS 异步解决实现方法
Jun 12 #Javascript
You might like
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
在普通HTTP上安全地传输密码
2007/07/21 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
JavaScript库 开发规则
2009/01/31 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
Python中使用logging模块打印log日志详解
2015/04/05 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
搞笑创意广告语
2014/03/17 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
法律专业自荐信
2014/06/03 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
简单聊聊Golang中defer预计算参数
2022/03/25 Golang