@richey
2017-12-05T12:33:51.000000Z
字数 3075
阅读 2306
webapp
vue
vux
rest
用sublime打开工程文件夹,讲解文件结构
-要点讲解
- vue文件讲解(template:编译为网页 script:编译为js)
- RESTful api与后台接口及页面数据接口
- 后台定时刷新数据
- 修改main.js
- 配色(他山之石,可以攻玉::))
https://www.iviewui.com/components/color
// 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 FastClick from 'fastclick'
import VueRouter from 'vue-router'
import App from './App'
import Home from './components/HelloFromVux'
import { AjaxPlugin } from 'vux'
Vue.use(AjaxPlugin)
//this.$http.defaults.baseURL = '127.0.0.1:5000';
Vue.use(VueRouter)
const routes = [{
path: '/',
component: Home
}]
const router = new VueRouter({
routes
})
FastClick.attach(document.body)
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
router,
render: h => h(App)
}).$mount('#app-box')
<template>
<div>
<x-header class="header" :left-options="{showBack: false}">
物联网应用系统
</x-header>
<divider>
实时数据
</divider>
<grid>
<grid-item >
<ul class="grid">
<li
<span class="grid-iot-icon" slot="icon" ></span>
</li>
<li class = "grid-text1">气温(℃)</li>
<li class = "grid-text2"> {{my_data.temperature}}</li>
</ul>
</grid-item>
<grid-item >
<ul class="grid">
<li
<span class="grid-iot-icon" slot="icon" ></span>
</li>
<li class = "grid-text1">湿度(%)</li>
<li class = "grid-text2"> {{my_data.humidity}}</li>
</ul>
</grid-item>
<grid-item >
<ul class="grid">
<li
<span class="grid-iot-icon" slot="icon" ></span>
</li>
<li class = "grid-text1">电压(V)</li>
<li class = "grid-text2"> {{my_data.voltage}}</li>
</ul>
</grid-item>
</grid>
</div>
</template>
<script>
import { Group, Cell,Divider,XHeader,Flexbox,FlexboxItem,Grid, GridItem } from 'vux'
export default {
components: {
Group,
Cell,
Divider,
XHeader,
Flexbox,
FlexboxItem,
Grid,
GridItem
},
data () {
return {
// note: changing this line won't causes changes
// with hot-reload because the reloaded component
// preserves its current state and we are modifying
// its initial state.
msg: 'Hello World!',
my_data:[],
}
},
mounted() {
this.getData();
this.timerGetData = setInterval(this.getData, 3000);
},
beforeDestroy() {
clearInterval(this.timerGetData)
},
methods: {
getData() {
this.$http({
url: 'http://127.0.0.1:5000/voltage?id=12',
method: 'GET',
})
.then((res) => {
this.my_data = res.data;
console.log('success ');
}, (res) => {
console.log('error ');
});
},
}
}
</script>
<style>
.vux-demo {
text-align: center;
}
.logo {
width: 100px;
height: 100px
}
.grid-iot-icon {
font-family: 'iot';
font-size: 32px;
color: @theme-color;
text-align: center;
}
.grid-text1 {
text-align: center;
color: grey;
list-style-type:none;
font-size: 18px;
}
.grid-text2 {
text-align: center;
color: black;
list-style-type:none;
font-size: 22px;
}
.grid {
font-size: 22px;
text-align: center;
background-color: white;
list-style-type:none;
}
.header {
background-color: @theme-color;
}
</style>