基于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 11 Javascript
JavaScript 拖拉缩放效果
Dec 10 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
如何使用jquery动态加载js,css文件实现代码
Apr 03 Javascript
jquery预览图片实现鼠标放上去显示实际大小
Jan 16 Javascript
搭建pomelo 开发环境
Jun 24 Javascript
js+jquery实现图片裁剪功能
Jan 02 Javascript
JavaScript中逗号运算符介绍及使用示例
Mar 13 Javascript
javascript常见数据验证插件大全
Aug 03 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 Javascript
微信小程序实现评论功能
Nov 28 Javascript
redux处理异步action解决方案
Mar 22 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
JavaScript关于select的相关操作说明
2010/01/13 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python中的with...as用法介绍
2015/05/28 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
蔻驰美国官网:COACH美国
2016/08/18 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
自荐书模板
2013/12/15 职场文书
商务日语专业自荐信
2014/04/17 职场文书
省文明单位申报材料
2014/05/08 职场文书
干部选拔任用方案
2014/05/26 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
西柏坡导游词
2015/02/05 职场文书
好好学习保证书
2015/02/26 职场文书
回复函格式及范文
2015/07/14 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python