從零開始搭建物聯網平台(7):使用Vue編寫前端頁面


摘要:

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里面吧。

 

算了就寫這么多吧,自己都不專業還是不誤導別人了

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM