基于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学习之闭包分析
Dec 02 Javascript
JS中confirm,alert,prompt函数区别分析
Jan 17 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
May 17 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
vue.js父组件使用外部对象的方法示例
Apr 25 Javascript
基于hover的用法实例(推荐)
Jul 04 Javascript
实例分析JS与Node.js中的事件循环
Dec 12 Javascript
JS排序算法之希尔排序与快速排序实现方法
Dec 12 Javascript
Vue中的字符串模板的使用
May 17 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
Sep 07 Javascript
基于react项目打包css引用路径错误解决方案
Oct 28 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入门之连接mysql数据库的一个类
2012/04/21 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
jQuery代码优化之基本事件
2011/11/01 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
python读取注册表中值的方法
2013/04/08 Python
Python logging模块学习笔记
2014/05/24 Python
python关键字and和or用法实例
2015/05/28 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python画折线图的程序
2018/07/26 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
Python的缺点和劣势分析
2019/11/19 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
毕业生欢送会主持词
2014/03/31 职场文书
地球一小时倡议书
2014/04/15 职场文书
社区班子对照检查材料
2014/08/27 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
开场白怎么写
2015/06/01 职场文书