基于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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
jquery js 获取时间差、时间格式具体代码
Jun 05 Javascript
jquery 获取dom固定元素 添加样式的简单实例
Feb 04 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
js学习之----深入理解闭包
Nov 21 Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 Javascript
vue.js指令和组件详细介绍及实例
Apr 06 Javascript
Node.js 8 中的 util.promisify的详解
Jun 12 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
微信小程序实现语音识别转文字功能及遇到的坑
Aug 02 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 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输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php实现的短网址算法分享
2014/06/20 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python探索之创建二叉树
2017/10/25 Python
python+mysql实现教务管理系统
2019/02/20 Python
pandas.cut具体使用总结
2019/06/24 Python
Python读取表格类型文件代码实例
2020/02/17 Python
Pandas之缺失数据的实现
2021/01/06 Python
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
决心书标准格式
2014/03/11 职场文书
学生会主席演讲稿
2014/04/25 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
商务英语求职信范文
2015/03/19 职场文书
离职信范文
2015/06/23 职场文书
情人节单身感言
2015/08/03 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers