物联网架构成长之路(36)-Vue前端入门

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/

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

  测试项目是否正常

1 cd datav
2 npm run dev

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

 1 import Vue from ‘vue‘
 2 import Router from ‘vue-router‘
 3 import HelloWorld from ‘@/components/HelloWorld‘
 4
 5 Vue.use(Router)
 6
 7 export default new Router({
 8   mode: ‘history‘,
 9   routes: [
10     {
11       path: ‘/‘,
12       name: ‘HelloWorld‘,
13       component: HelloWorld
14     }
15   ]
16 })

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

4. 安装部分组件

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

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

1   "dependencies": {
2     "@jiaminghi/data-view": "^2.4.5",
3     "axios": "^0.19.0",
4     "vue": "^2.5.2",
5     "vue-axios": "^2.1.5",
6     "vue-router": "^3.0.1"
7   },

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

 1 // The Vue build version to load with the `import` command
 2 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 3 import Vue from ‘vue‘
 4 import App from ‘./App‘
 5 import router from ‘./router‘
 6 import axios from ‘axios‘
 7 import VueAxios from ‘vue-axios‘
 8 import dataV from ‘@jiaminghi/data-view‘
 9
10 require(‘./mock/mock.js‘)
11 require(‘./http/http.js‘)
12
13 Vue.use(VueAxios, axios)
14 Vue.use(dataV)
15 Vue.config.productionTip = false
16
17 /* eslint-disable no-new */
18 new Vue({
19   el: ‘#app‘,
20   router,
21   components: { App },
22   template: ‘<App/>‘
23 })

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

 1 import axios from ‘axios‘
 2
 3 axios.defaults.headers.get[‘Conetnt-Type‘] = ‘application/json‘
 4
 5 //请求拦截
 6 axios.interceptors.request.use(
 7   config =>{
 8     const token = localStorage.getItem(‘userToken‘);
 9     //Authorization: Bearer AccessToken OAuth2.0认证时,需要从浏览器存储中获取AccessToken
10     config.headers.Authorization = "Bearer " + "token";
11     return config;
12   },
13   error =>{
14     return Promise.reject(error);
15   }
16 )
17
18 //响应拦截器
19 axios.interceptors.response.use(
20   response =>{
21     return response;
22   },
23   error =>{
24     return Promise.reject(error);
25   }
26 )
27
28 export default axios

  mock.js

 1 import Mock from ‘mockjs‘
 2
 3 Mock.setup({
 4   timeout: ‘200 - 400‘
 5 })
 6
 7 function loginFun(param){
 8   console.log(param);
 9   return {
10     "value": 11
11   }
12 }
13
14 Mock.mock(‘/login‘, ‘post‘, loginFun); //虚拟数据

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

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

 1     /**
 2      * 代理服务器
 3      */
 4     proxyTable:{
 5       ‘/api‘:{
 6         target: ‘https://api.wunaozai.com‘, //目标接口域名
 7         changeOrigin: true, //是否跨域
 8         pathRewrite:{
 9           ‘^/api‘: ‘/‘ //重写接口
10         }
11       }
12     },

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

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

 1 <template>
 2   <div class="hello">
 3     <h1>{{ msg }}</h1>
 4     <h1>{{ mockMsg }}</h1>
 5     <h1>{{ proxyMsg }}</h1>
 6   </div>
 7 </template>
 8
 9 <script>
10 export default {
11   name: ‘HelloWorld‘,
12   data () {
13     return {
14       msg: ‘Welcome to Your Vue.js App‘,
15       mockMsg: ‘mockMsg‘,
16       proxyMsg: ‘proxyMsg‘
17     }
18   },
19   mounted() {
20     var that = this;
21     //通过mockjs获取数据
22     this.axios.post(‘/login‘).then((res)=>{
23       console.log(res.data)
24       that.mockMsg = res.data.value;
25     }).catch((err)=>{
26       console.log(err)
27     })
28     //通过proxyTable获取数据
29     this.axios.get(‘/api/yan.php?format=json‘).then((res)=>{
30       console.log(res.data)
31       that.proxyMsg = res.data.text;
32     }).catch((err)=>{
33       console.log(err)
34     })
35   },
36   methods:{
37
38   }
39 }
40 </script>
41
42 <!-- Add "scoped" attribute to limit CSS to this component only -->
43 <style scoped>
44
45 </style>

6. 编译,部署

npm run build

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

7. 运行效果

参考资料:
  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

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

时间: 2024-08-30 11:56:53

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

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

1.前言 Spring Cloud 现在比较流行,版本更新也是蛮快的,网上资料也是很多.很多参考网上资料就可以学到了.这里给个 http://blog.csdn.net/forezp/article/details/70148833 2.放弃 本来还想写一篇Spring Cloud 入门环境搭建的博客, 后来想了想,还是算了,网上资料一大堆.这里就不写了. 3.吹水 下面就简单聊聊天,吹吹水算了 2018.01.18 笔记 公司网速不行,在进行Maven项目以来更新,偷偷写一些经历. 现在开始学

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

1. 安装RTMP流媒体服务器 以前其实我是利用Nginx-RTMP-module搭建过RTMP流媒体服务器,并实现了鉴权功能.参考https://www.cnblogs.com/wunaozai/p/9427730.html,看看发布时间,已经是一年多以前的事情了,感概时间过得好快啊. 先在Nginx官网[http://nginx.org/en/download.html]下载源码包,然后在github[https://github.com/arut/nginx-rtmp-module]下载插

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

0. 前言 前一小节,讲了如何入门,这里就简单讲一下如何自定义查询和权限控制配置. 1. 配置多租户 如果要启用该表的多租户功能,需要在application.yml 这里配置. 2. 配置模糊匹配 1 @GetMapping(value="/list2") 2 public R<IPage<Wunaozai>> list2(@RequestParam Map<String, Object> wunaozai, Query query){ 3 IPa

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

1. 搭建RTSP服务 首先现在音视频利器 ffmpeg,这个到http://www.ffmpeg.org/download.html 这里下载压缩包即可. 文档参考:http://trac.ffmpeg.org/wiki/ffserver 二进制下载地址:https://ffbinaries.com/downloads 由于ffserver在4.0以上已经移除了,所以只能下载3.x功能,不过已经够用了.我们只是用来测试而已. 新增ffserver.conf 配置 1 RTSPPort 5454

物联网架构成长之路(56)-SpringCloudGateway+JWT实现网关鉴权

0. 前言 结合前面两篇博客,前面博客实现了Gateway网关的路由功能.此时,如果每个微服务都需要一套帐号认证体系就没有必要了.可以在网关处进行权限认证.然后转发请求到后端服务.这样后面的微服务就可以直接调用,而不需要每个都单独一套鉴权体系.参考了Oauth2和JWT,发现基于微服务,使用JWT会更方便一些,所以准备集成JWT作为微服务架构的认证方式. [https://www.cnblogs.com/wunaozai/p/12512753.html] 物联网架构成长之路(54)-基于Naco

物联网架构成长之路(0)-目录

一.基础 [http://www.cnblogs.com/wunaozai/p/8067621.html] 物联网架构成长之路(1)-前言 [http://www.cnblogs.com/wunaozai/p/8075640.html] 物联网架构成长之路(2)-脚手架工具准备 [http://www.cnblogs.com/wunaozai/p/8082332.html] 物联网架构成长之路(3)-EMQ消息服务器了解

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

0.前言 上一篇博客已经介绍了,阶段性小结.目前第一版的物联网平台已经趋于完成.框架基本不变了,剩下就是调整一些UI,还有配合硬件和市场那边,看看怎么推广这个平台.能不能挣点外快.第一版系统虽然简陋,但是对于整个物联网业务的了解还是有很大的帮助的.就像一个道理,吃10个包子,吃到最后一个饱了,但不能说前面9个没有用.不过硬件.市场.项目等等,这些是我不能控制的.但是平台的迭代和第二版规划不能停.第二版物联网平台,将采用现有的企业开发框架,并且是前后端分离,开始用上前端的Vue框架. 前段时间,经

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

0.前言 一开始学的之后,是想一步到位直接上Kubernetes(K8s)的,后面没想到,好像有点复杂,有些概念不是很懂.因此学习东西还是要循序渐进,慢慢来.先了解单机编排技术Docker Compose,了解一些技术细节及原理后,在入手K8s.还是不能一口吃成胖子,要多吃几口才可以.而且目前公司都是一些小项目,能用得上DockerCompose已经很不错了,还想要上K8s,估计是不现实的. 1. 安装 可以通过运行下面命令进行安装, 1 curl -L https://github.com/d

物联网架构成长之路(35)-利用Netty解析物联网自定义协议

一.前言 前面博客大部分介绍了基于EMQ中间件,通信协议使用的是MQTT,而传输的数据为纯文本数据,采用JSON格式.这种方式,大部分一看就知道是熟悉Web开发.软件开发的人喜欢用的方式.由于我也是做web软件开发的,也是比较喜欢这种方式.阿里的物联网平台,也是推荐这种方式.但是,但是做惯硬件开发,嵌入式开发就比较喜欢用裸TCP-Socket连接.采用的是二进制协议.基于此大部分应用场合为了兼容旧设备,就需要单独开发一个TCP服务器的网关.这里使用以前学过的,也是比较流行的Netty框架. 话不