1. 前言
  物联网平台,需要有一个类似大屏看板的功能。

  找了一圈,发现阿里已经有对应的DataV产品,但是那个价格有点贵啊。所以找了这个【http://datav.jiaminghi.com/demo/】,这看起来也是挺不错的。就是需要了解一些前端Vue。说到前端,我之前好久就想入门了。断断续续看视频,写Demo,写小程序。但都处于入门阶段。而且前端变化太快了。半年没看,就各种更新了。不过还是迟早要学的。

2. 安装环境
  安装IDE,这里推荐VSCode,然后安装Vetur 插件
  Google Chrome 浏览器 安装 Vue.js Devtools 一个Vue的调试工具
  安装 npm
  请到这里下载 https://nodejs.org/en/download/

 #现在npm 仓库的网络已经很不错了,如果还不行,那可以使用cnpm
# 安装淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
#安装 vue-cli 全局安装vue-cli脚手架
npm install -g vue-cli
#查看是否安装成功
vue -V
#安装 @vue/cli-init
npm install -g @vue/cli-init
#使用vue-cli 创建项目
vue init webpack projectName

  测试项目是否正常

 cd datav
npm run dev

3.修改部分参数
  1)修改datav/src/router/index.js 在第8行增加mode:'history'

 import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld' Vue.use(Router) export default new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
}
]
})

  2)修改datav/config/index.js 第16行,host:'0.0.0.0'

4. 安装部分组件

 npm install axios
npm install vue-axios
npm install @jiaminghi/data-view
npm install --save-dev mockjs
#安装依赖过程中,如果出现奇奇怪怪的问题,可以删除 node_modules 然后重新 npm install
npm run dev

  最后在datav/package.json 文件里面的依赖为

   "dependencies": {
"@jiaminghi/data-view": "^2.4.5",
"axios": "^0.19.0",
"vue": "^2.5.2",
"vue-axios": "^2.1.5",
"vue-router": "^3.0.1"
},

  配置axios,在datav/src/main.js 文件配置axios

 // The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import VueAxios from 'vue-axios'
import dataV from '@jiaminghi/data-view' require('./mock/mock.js')
require('./http/http.js') Vue.use(VueAxios, axios)
Vue.use(dataV)
Vue.config.productionTip = false /* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})

  配置mockjs
  创建两个文件分别是 datav/src/http/http.js datav/src/mock/mock.js
  http.js

 import axios from 'axios'

 axios.defaults.headers.get['Conetnt-Type'] = 'application/json'

 //请求拦截
axios.interceptors.request.use(
config =>{
const token = localStorage.getItem('userToken');
//Authorization: Bearer AccessToken OAuth2.0认证时,需要从浏览器存储中获取AccessToken
config.headers.Authorization = "Bearer " + "token";
return config;
},
error =>{
return Promise.reject(error);
}
) //响应拦截器
axios.interceptors.response.use(
response =>{
return response;
},
error =>{
return Promise.reject(error);
}
) export default axios

  mock.js

 import Mock from 'mockjs'

 Mock.setup({
timeout: '200 - 400'
}) function loginFun(param){
console.log(param);
return {
"value": 11
}
} Mock.mock('/login', 'post', loginFun); //虚拟数据

  除了通过mock模拟数据外,还可以通过proxy代理方式。
  两种方式的区别是,当前后端分离时,前后端定好协议后,双方同时进行开发,前端可以使用mockjs模拟数据,来继续前期开发。
  当后端开发完成后,会部署到服务器,此时,前端还需要进行集成和数据调试,这个时候,就需要前端开放时,能请求到服务器的API,但是由于浏览器的跨域请求限制,所以需要配置代理。实现本地开发。

  proxyTable方式,在 datav/config/index.js 的 module.exports 里面配置proxyTable

     /**
* 代理服务器
*/
proxyTable:{
'/api':{
target: 'https://api.wunaozai.com', //目标接口域名
changeOrigin: true, //是否跨域
pathRewrite:{
'^/api': '/' //重写接口
}
}
},

  没有后端的同学,可以用这个测试一下:https://api.ly522.com/yiyan

5. 开始写代码
  修改后HelloWorld.vue 代码如下

 <template>
<div class="hello">
<h1>{{ msg }}</h1>
<h1>{{ mockMsg }}</h1>
<h1>{{ proxyMsg }}</h1>
</div>
</template> <script>
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App',
mockMsg: 'mockMsg',
proxyMsg: 'proxyMsg'
}
},
mounted() {
var that = this;
//通过mockjs获取数据
this.axios.post('/login').then((res)=>{
console.log(res.data)
that.mockMsg = res.data.value;
}).catch((err)=>{
console.log(err)
})
//通过proxyTable获取数据
this.axios.get('/api/yan.php?format=json').then((res)=>{
console.log(res.data)
that.proxyMsg = res.data.text;
}).catch((err)=>{
console.log(err)
})
},
methods:{ }
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped> </style>

6. 编译,部署

npm run build

  编译后,在 datav 目录下有个dist文件夹,把这个文件夹下的所有文件,部署到服务器,就完成前端开发。
  部署时,可以通过Nginx代理后端和前端,也可以把dist文件夹复制到后端工程里面。

7. 运行效果

2020-04-21 11:54:11 更新一些笔记

增加一个request.js

 import axios from 'axios'

 const service = axios.create({
baseURL: '/wechat-api',
timeout: 3000
}) service.defaults.headers.get['Content-Type'] = 'application/json'
service.interceptors.request.use(
config => {
const jwt = localStorage.getItem('jwt-token')
config.headers["jwt-token"] = jwt
return config
},
error => {
return Promise.reject(error)
}
) service.interceptors.response.use(
response => {
console.log(response)
},
error => {
return Promise.reject(error)
}
) export default service

增加一个API调用,统一请求

 import request from '@/http/request'

 export function demo(data){
return request({
url: '/error/demo',
method: 'post',
params: data
})
}

调用请求

 import * as Demo from '@/api/demo'
export default {
name: 'HelloWorld',
data () {
},
created(){
this.demo()
},
methods: {
demo() {
Demo.demo({a: 1}).then(ret => {
console.log(ret)
})
}
}
}

出现 Invalid Host header

配置 webpack.dev.conf.js 在devServer 下增加 disableHostCheck: true

参考资料:
  http://datav.jiaminghi.com/demo/
  https://www.jianshu.com/p/6f8a8568e33a
  https://cli.vuejs.org/zh/guide/

本文地址: https://www.cnblogs.com/wunaozai/p/11663516.html

物联网架构成长之路(36)-Vue前端入门的更多相关文章

  1. 物联网架构成长之路(16)-SpringCloud从入门到吹水

    1.前言 Spring Cloud 现在比较流行,版本更新也是蛮快的,网上资料也是很多.很多参考网上资料就可以学到了.这里给个 http://blog.csdn.net/forezp/article/ ...

  2. 物联网架构成长之路(43)-k8s从入门到放弃

    0. 前言 这段时间要入门一下CI/CD了,以前简单的了解过Jenkins,现在要把以下的这个图的架构搭建起来.国外可能一两个命令就安装完成的事情,我折腾了2天多,真的差点放弃了. 1. 安装Virt ...

  3. 物联网架构成长之路(42)-直播流媒体入门(RTMP篇)

    1. 安装RTMP流媒体服务器 以前其实我是利用Nginx-RTMP-module搭建过RTMP流媒体服务器,并实现了鉴权功能.参考https://www.cnblogs.com/wunaozai/p ...

  4. 物联网架构成长之路(41)-直播流媒体入门(RTSP篇)

    1. 搭建RTSP服务 首先现在音视频利器 ffmpeg,这个到http://www.ffmpeg.org/download.html 这里下载压缩包即可. 文档参考:http://trac.ffmp ...

  5. 物联网架构成长之路(40)-Bladex开发框架入门

    0. 前言 前一小节,讲了如何入门,这里就简单讲一下如何自定义查询和权限控制配置. 1. 配置多租户 如果要启用该表的多租户功能,需要在application.yml 这里配置. 2. 配置模糊匹配 ...

  6. 物联网架构成长之路(25)-Docker构建项目用到的镜像1

    0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...

  7. 物联网架构成长之路(31)-EMQ基于HTTP权限验证

    看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...

  8. 物联网架构成长之路(39)-Bladex开发框架环境搭建

    0.前言 上一篇博客已经介绍了,阶段性小结.目前第一版的物联网平台已经趋于完成.框架基本不变了,剩下就是调整一些UI,还有配合硬件和市场那边,看看怎么推广这个平台.能不能挣点外快.第一版系统虽然简陋, ...

  9. 物联网架构成长之路(24)-Docker练习之Compose容器编排

    0.前言 一开始学的之后,是想一步到位直接上Kubernetes(K8s)的,后面没想到,好像有点复杂,有些概念不是很懂.因此学习东西还是要循序渐进,慢慢来.先了解单机编排技术Docker Compo ...

随机推荐

  1. Redis系列---安装redis单机版02

    本章将带领大家一步一步安装Redis单机版(Redis从3.0版本后就开始支持集群了,集群将会后边章节带领大家操作) 准备环境: Centos 6.X redis3.+版本(自行下载,redis 的版 ...

  2. mybatis关联关系映射

    1.一对多关联关系 2.多对多关联关系 首先先用逆向生成工具生成t_hibernate_order.t_hibernate_order_item t_hibernate_book.t_hibernat ...

  3. Java生鲜电商平台-优惠券系统的架构设计与源码解析

    Java生鲜电商平台-优惠券系统的架构设计与源码解析 电商后台:实例解读促销系统 电商后台系统包括商品管理系统.采购系统.仓储系统.订单系统.促销系统.维权系统.财务系统.会员系统.权限系统等,各系统 ...

  4. C#操作SQLite数据库增、删、改、查 欢迎转载

    C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...

  5. JavaWeb之servlet(2)

    servlet(2) ServletContext servlet的上下文 每个jvm的虚拟机中的每个web工程都只有一个ServletContext工程,即在一个web工程中,无论写了多少个Java ...

  6. 使用原生Ajax进行用户名重复的检验

    title: 使用原生Ajax进行用户名重复的检验(一) date: 2019-01-21 17:35:15 tags: [JavaScript,Ajax] --- Ajax的复习 距离刚开始学aja ...

  7. 9.智能快递柜SDK(串口型锁板)

    1.智能快递柜(开篇) 2.智能快递柜(终端篇) 3.智能快递柜(通信篇-HTTP) 4.智能快递柜(通信篇-SOCKET) 5.智能快递柜(通信篇-Server程序) 6.智能快递柜(平台篇) 7. ...

  8. [20190823]关于CPU成本计算2.txt

    [20190823]关于CPU成本计算2.txt --//前几天探究CPU cost时遇到的问题,获取行成本时我的测试查询结果出现跳跃,不知道为什么,感觉有点奇怪,分析看看.--//ITPUB原始链接 ...

  9. ctr预估论文梳理和个人理解

    问题描述 ctr的全称是click through rate,就是预估用户的点击率,可以用于推荐系统的ranking阶段.ctr预估可以理解为给用户的特征.item的特征以及context的特征(比如 ...

  10. SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1)

    SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1) Action Plan 1. Execute srdc_db_ ...