这是一个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
这样我的项目结构就出来了,如下:
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后,浏览器显示效果:
总结:
该开始vue组件通信一块,使用的是bus通信,发现到了后来代码越来越臃肿,而且有很多莫名其妙的小bug,就停住了继续的项目,在项目中加入了vuex,删除已有的bus,对组件进行了一次重新的规范,虽然重新规划通信花掉了一点时间,但是确是大大降低了代码的冗余,而且思路非常清晰,就觉得自己停止现有的方式去尝试另一种方式来完成一个任务的选择是正确的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍python实现微信自动回复机器人功能,包括了python实现微信自动回复机器人功能的使用技巧和注意事项,需要的朋友参考一下 一 简单介绍 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。 总而言之,可用来实现各种微信个人号的自动化操作。(http://wxpy.
我正在尝试设置一个容器,以便在Chrome上使用RobotFramework进行测试。 但是当我运行容器时,我总是得到一个WebDriverException。我已经找过了,但找不到任何对我有效的修复方法。 这是我的Dockerfile
WebUI automation testing framework based on Selenium 介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比selenium提供的方法操作更简洁。 起因: python + selenium 自动化测试写久了发现selenium(webdriver)提供原生的方法并简便,于是,产生了二次封装的想法。想不到太炫酷的名
本文向大家介绍基于SSM框架实现简单的登录注册的示例代码,包括了基于SSM框架实现简单的登录注册的示例代码的使用技巧和注意事项,需要的朋友参考一下 一、环境配置工程目录 在pom.xml添加依赖 数据库驱动配置 jdbc.properties spring-web.xml 二、具体逻辑实现数据访问对象(DAO接口) UserDao.java UserDao.xml 控制器 UserControll
我想用机器人框架实现selenium网格。我已经配置了selenium网格集线器和两个节点,但是我不知道如何在此设置后触发并行测试用例执行,在哪里使用python语言和selenium 2库关键字更新机器人框架中的线程数和并行测试执行设置?此外,在哪里分配集线器url来触发执行?请建议可能的解决方案。注意:我们在脚本中使用selenium 2库关键字,而不是web驱动程序关键字,因此我无法使用“w
本文向大家介绍JS运动基础框架实例分析,包括了JS运动基础框架实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS运动基础框架。分享给大家供大家参考。具体分析如下: 这里需要注意: 1. 在开始运动时关闭已有的定时器 2. 把运动和停止隔开 希望本文所述对大家的javascript程序设计有所帮助。