摘要:
Vue我也是剛開始學的,看了兩天的文檔就開始着手做這件事了,所以對vue了解不太深入,沒有能力說的的太詳細萬一是錯誤的不就誤導別人了,所以只對幾個相對來說比較主要的點說明一下。
搭建開發環境:
老生常談的話題!首先自然是要安裝nodejs,這個直接去官網下載安裝即可,再使用命令npm install vue、npm install -g vue-cli去安裝vue和腳手架工具,完成之后再使用命令vue init webpack myproject來初始化項目,初始化完成之后會在目錄下生成這些文件,到這一步的話環境差不多搭建好了。
接下來是安裝依賴,在這個項目里面我用了以下幾個庫, 通過命令npm install xxx --S 安裝,環境差不多搭建完成。
"axios": "^0.18.0", 發送請求的類似ajax
"echarts": "^4.2.0-rc.2", 可視化工具,用於繪制數據曲線圖
"element-ui": "^2.4.9", 網頁UI
"vue-router": "^3.0.1", 路由,這個一般在初始化項目的時候就安裝了,如果沒有自己手動安裝
開始我們的開發之旅:
首先確定一下頁面布局,分為三大塊,其中頂欄和側欄顯示內容不變,只變主題部分,布局樣式使用elementUI中的<el-header>
:頂欄容器, <el-aside>
:側邊欄容器,<el-main>
:主要區域容器實現。
頂欄基本沒啥內容就一個圖標不說了,說一下側邊導航欄,導航欄使用el-menu組件實現,將el-menu的 route屬性設置為true,或者使用router-link去做跳轉,不過那樣顯得要麻煩一些,所以還是推薦第一種
<el-menu class="el-menu-vertical-demo"
background-color="#304156"
text-color="#bfcbd9"
active-text-color="#409eff"
:default-active="$route.path"
router >
<el-menu-item index="/developer/dashboard">
<i class="el-icon-ump-18"></i>
<span slot="title">主頁</span>
</el-menu-item>
<el-menu-item index="/developer/charts">
<i class="el-icon-ump-shuju2"></i>
<span slot="title">歷史數據</span>
</el-menu-item>
<el-menu-item index="/developer/devices">
<i class="el-icon-ump-shebei2"></i>
<span slot="title">設備管理</span>
</el-menu-item>
<el-menu-item index="/developer/streams">
<i class="el-icon-ump-shuju1"></i>
<span slot="title">數據流管理</span>
</el-menu-item>
<el-menu-item index="/developer/triggers">
<i class="el-icon-ump-chufaqi"></i>
<span slot="title">觸發器管理</span>
</el-menu-item>
<el-menu-item index="/developer/console">
<i class="el-icon-ump-kongzhitai1"></i>
<span slot="title">控制台</span>
</el-menu-item>
</el-menu>
最后的效果:
下面開始內容主體,放個樣圖。
樣式部分就不說了看個人喜好,主要說一下如何獲取后台的數據,數據的獲取需要用到之前安裝的axios插件,通過axios的get、post等方法訪問后端的接口獲取json數據例如get方法,then和catch是es6的語法,具體的我也解釋明白。如果數據獲取正常,后端返回的數據放在res.data里面,打印到控制台看看返回結果,post同理,只是參數不同
axios.get(url, {
params: { 'key': 'value' }
}).then((res)=> {
console.log(res.data);
}).catch((error)=> {
console.log(error);
});
一般來說獲取數據可以放在created()或者mounted()里面,看自己需求吧,created要先於mounted,created那時候還沒有生成dom,如果需要操作dom那么還是放到mounted里面吧。
算了就寫這么多吧,自己都不專業還是不誤導別人了