使用Element進行前端開發的詳細圖文教程
前言
本文介紹如何使用vue-element-admin+element進行前端開發。
我們可以使用element組件很方便的進行前端開發,並且每個組件都已經提供瞭對應的代碼,隻需要復制我們需要的功能即可。
前提:下載編譯運行vue-elemnt-admin,詳細可見vue-element-admin官網
> git clone -b api https://github.com/five3/vue-element-admin.git
> cd vue-element-admin
> npm i
> npm run dev
出現如下顯示,說明運行成功,可以訪問。
目的:實現任務列表項目前端
1、添加路由
1、在src/router/index.js文件,並在constantRoutes列表中追加一個路由子項
{ path: '/todo', component: Layout, redirect: '/todo/index', hidden: false, children: [ { path: 'index', component: () => import('@/views/todo/index'), name: 'Profile', meta: { title: '任務列表', icon: 'list', noCache: true } } ] }
2、添加頁面
創建一個路徑為src/views/todo的目錄,同時在該目錄下創建一個名為index.vue的文件
<template></template> <div class="app-container"></div> <h1></h1>{{ title }}</h1></h1> </div> </template> <script></script> export default { name: 'Todo', data() { return { title: '任務列表' } } } </script>
3、添加元素
頁面上的當前任務、未完成、已完成,實際是三個tab標簽頁
打開element網站,找到tab標簽頁這個組件,找到想要的效果,打開代碼復制到index.vue
創建任務按鈕是一個按鈕。
<el-button type="primary" @click="createTask">創建任務</el-button>
任務名稱這一行是一個table表格
<el-table :data="tableData" border style="width: 100%;"> <el-table-column fixed prop="name" label="任務名稱" width="100"> </el-table-column> <el-table-column prop="desc" label="任務描述" width="400"> </el-table-column> <el-table-column prop="start_time" label="開始時間" width="150"> </el-table-column> <el-table-column prop="end_time" label="結束時間" width="150"> </el-table-column> <el-table-column prop="assign" label="執行人" width="120"> </el-table-column> <el-table-column prop="status" label="任務狀態" width="120"> </el-table-column> <el-table-column fixed="right" label="操作" width="60"> <template slot-scope="scope"> <el-button type="text" size="small" @click="editTask(scope.row)">編輯</el-button> </template> </el-table-column> </el-table>
最後個表格列-操作下面,還包括一個編輯的text按鈕。
<el-table-column fixed="right" label="操作" width="60"> <template slot-scope="scope"> <el-button type="text" size="small" @click="editTask(scope.row)">編輯</el-button> </template> </el-table-column>
點擊創建任務,右側彈出一個面板
這其實是一個抽屜組件,組件內是一個表單組件。
4、添加事件
在頁面代碼中通過@click屬性來綁定事件處理函數,還需要在methods對象中定義對應的處理函數對象
export default { name: 'Todo', data() { return { ... form: { 'name': '', 'desc': '', 'start_time': '', 'end_time': '', 'assign': '', 'status': '' } } }, methods: { createTask () { this.title = '創建任務'; this.drawer = true; this.form = {}; }, editTask (row) { this.title = '編輯任務'; this.drawer = true; this.form = row; }, onSubmit() { console.log('submit!'); } } }
5、提交表單數據
在之前的內容中已經完成瞭頁面的設計和交互,這裡需要做的是把表單的內容提交到服務器端。Vue中發送ajax請求到服務器端推薦使用axios組件,而vue-element-admin框架已經集成並封裝瞭該組件。首先,在src/api目錄下新建一個todo.js的文件
import request from '@/utils/request' export function submit (data) { return request({ url: '/api/todo', method: 'post', headers: { 'Content-Type': 'application/json' }, data }) }
這裡定義瞭一個發送ajax請求的submit函數,該函數實際上調用瞭封裝好axios組件的request函數,並將請求相關的url、method、headers、data數據傳遞給該底層函數。之後,在src/views/todo/index.vue頁面中引入定義好的submit函數,並將onSubmit處理函數中的內容進行替換。
<script> import {submit} from '@/api/todo' … onSubmit () { submit(this.form).then((response)=>{ if (response.code === 0) { this.$message({ showClose: true, message: '保存成功!', type: 'success' }); } }) } </script>
這裡調用submit函數,把表單數據提交給requests,然後獲取返回結果response。
當response為0時,返回message。
任務內容提交到服務器之後,還需要再次從服務器拉取下來以便於查看。與提交數據到服務器類似,從服務器獲取數據同樣需要通過ajax方式來發送HTTP請求。具體要做的是在src/api/todo.js文件中新建一個名為pullData的函數。具體內容如下:
export function pullData (par) { return request({ url: '/api/todo', method: 'get', params: par }) }
然後,在src/views/todo/index.vue文件中引入該函數,同時定義一個調用該函數的新函數getTaskData。
getTaskList (tab) { pullData({tab: tab}).then((response)=>{ if (response.code === 0) { this.tableData = response.data; } }) }
同時在點擊tab加載頁面時,調用該函數
mounted() { this.getTaskList(this.activeTab) },
完整代碼的分支路徑為:https://github.com/five3/vue-element-admin/tree/todo
總結
到此這篇關於使用Element進行前端開發的文章就介紹到這瞭,更多相關Element前端開發內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 動態實現element ui的el-table某列數據不同樣式的示例
- element table 表格控件實現單選功能
- vue+elementUI實現內嵌table的方法示例
- element el-table表格的二次封裝實現(附表格高度自適應)
- vue element實現表格增加刪除修改數據