基于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 相关文章推荐
javascript 二分法(数组array)
Apr 24 Javascript
javascript 通用简单的table选项卡实现
May 07 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
Feb 03 Javascript
JavaScript 代码压缩工具小结
Feb 27 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
手机平板等移动端适配跳转URL的js代码
Jan 25 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
Dec 13 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
Feb 20 Javascript
Vue.js标签页组件使用方法详解
Oct 19 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
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
一个实用的php验证码类
2017/07/06 PHP
日期 时间js控件
2009/05/07 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
js有序数组的连接问题
2013/10/01 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
vue的路由映射问题及解决方案
2019/10/14 Javascript
Python 正则表达式入门(初级篇)
2016/12/07 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
企划主管岗位职责
2013/12/12 职场文书
工商管理本科生求职信
2014/07/13 职场文书
应届生简历自我评价
2015/03/11 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
地道战观后感2000字
2015/06/04 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
2019假期福利管理制度!
2019/07/15 职场文书