基于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 相关文章推荐
解决jquery submit()提交表单提示:f[s] is not a function
Jan 23 Javascript
jquery next nextAll nextUntil siblings的区别介绍
Oct 05 Javascript
JavaScript通过元素的ID和name设置样式
Jul 08 Javascript
javascript执行环境及作用域详解
May 05 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
May 24 Javascript
JavaScript ES6中CLASS的使用详解
Nov 22 Javascript
Vue.js常用指令之循环使用v-for指令教程
Jun 27 Javascript
什么时候不能在 Node.js 中使用 Lock Files
Jun 24 Javascript
layui表格设计以及数据初始化详解
Oct 26 Javascript
Vue中component标签解决项目组件化操作
Sep 04 Javascript
JavaScript 异步时序问题
Nov 20 Javascript
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
深究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函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
python实现猜单词小游戏
2020/05/22 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
高级工程师岗位职责
2013/12/15 职场文书
顶岗实习计划书
2014/01/10 职场文书
水果超市创业计划书
2014/01/27 职场文书
运动会广播稿500字
2014/01/28 职场文书
质量管理标语
2014/06/12 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
公司庆典欢迎词
2015/01/26 职场文书
农村党员干部承诺书
2015/05/04 职场文书
清洁工工作总结
2015/08/11 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
详解Python requests模块
2021/06/21 Python