1. Element-UI介紹
element-ui 是餓了麼前端出品的基于 Vue.js的 背景元件庫,友善程式員進行頁面快速布局和建構。
Element-UI官方站點:https://element.eleme.cn/#/zh-CN
可以進去選擇想要的元件,直接複制代碼,改巴改巴,就可以運用到自己的項目場景。
2. Element-UI使用
2.1 指令行方式安裝
1. 建立 一個新的項目
2. 目前項目下打開終端, 安裝依賴包 ,執行下面的指令
npm i element-ui -S
3. 打開 main.js , 導入Element-UI 相關資源.
main.js是工程的入口檔案,在此檔案中加載了很多第三方元件,如:Element-UI、Base64、VueRouter等。
//導入元件庫
import ElementUI from 'element-ui'
//導入元件相關樣式
import 'element-ui/lib/theme-chalk/index.css'
//配置Vue插件 将El安裝到Vue上
Vue.use(ElementUI);
4. 複制Element 按鈕樣式 到app.vue檔案的 template下
<template>
<div id="app">
<!-- 測試elementUI -->
<el-row>
<el-button>預設按鈕</el-button>
<el-button type="primary">主要按鈕</el-button>
<el-button type="success">成功按鈕</el-button>
<el-button type="info">資訊按鈕</el-button>
<el-button type="warning">警告按鈕</el-button>
<el-button type="danger">危險按鈕</el-button>
</el-row>
<div id="nav">
<router-link to="/">Home</router-link>|
<router-link to="/about">About</router-link>
</div>
<router-view />
</div>
</template>
5. 啟動項目 npm run serve, 檢視頁面
2.2 Vue-CLI工程改造
1. 删除components 目錄下的 HelloWord.vue元件
2. 删除App.vue中的部分内容,隻保留如下部分
<template>
<div id="app"></div>
</template>
<style>
</style>
3. 删除router檔案下的路由檔案 index.js部分内容,隻保留如下部分
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [
]
const router = new VueRouter({
routes
})
export default router
4. 删除views目錄下的 About.vue 與 Home.vue
2.3 安裝axios
1. npm安裝:使用npm下載下傳axios包
npm i axios
2. 在main.js檔案中導入axios 相關資源
//引入axios
import axios from 'axios'
//Vue對象使用axios
Vue.prototype.axios = axios;
3. 案例:使用者登入界面制作
3.1 Dialog對話框元件
我們可以用Dialog制作一個登陸彈窗,選擇自定義内容
<el-dialog title="收貨位址" :visible.sync="dialogFormVisible">
<el-form :model="form">
<el-form-item label="活動名稱" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="活動區域" :label-width="formLabelWidth">
<el-select v-model="form.region" placeholder="請選擇活動區域">
<el-option label="區域一" value="shanghai"></el-option>
<el-option label="區域二" value="beijing"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogFormVisible = false">确 定</elbutton>
</div>
</el-dialog>
3.2 建立login.vue 元件
1. 在components 下建立login.vue
2. 将Diglog元件的内容,拷貝到login.vue,進行修改:
<template>
<el-dialog title="登入" :visible.sync="dialogFormVisible">
<el-form>
<el-form-item label="使用者名稱" :label-width="formLabelWidth">
<el-input autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="使用者密碼" :label-width="formLabelWidth">
<el-input autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogFormVisible = false">登入</elbutton>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
formLabelWidth: "120px", //寬度
dialogFormVisible: true
};
}
};
</script>
<style scoped>
</style>
3.3 配置路由
import Vue from "vue";
import VueRouter from "vue-router";
import Login from "@/components/Login.vue"
Vue.use(VueRouter);
const routes = [
//通路 /,也跳轉到login
{
path:'/',
redirect:'login' //重定向都login
},
//登入
{
path:'/login',
name:'login',
component:Login
}
];
const router = new VueRouter({
routes,
});
export default router;
3.4 修改App.vue
<template>
<div id="app">
<!-- router-view 的作用是根據通路的路徑,渲染路徑比對到的視圖元件 -->
<router-view></router-view>
</div>
</template>
<style>
</style>
3.5 編寫登入功能
1. 去掉關閉按鈕, 添加一個屬性 :show-close="false"
<el-dialog title="登入" :show-close="false" :visible.sync="dialogFormVisible">
2. 修改登陸觸發事件
<el-button type="primary" @click="login">登入</el-button>
3. 雙向資料綁定
- data 中定義資料
data() {
return {
formLabelWidth: "120px", //寬度
dialogFormVisible: true, //是否關閉對話框
user: { username: "", password: "" }, //登入資料
};
},
- 使用 v-model, 将視圖與模型進行綁定
<el-form>
<el-form-item label="使用者名稱" :label-width="formLabelWidth">
<el-input v-model="user.username" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="使用者密碼" :label-width="formLabelWidth">
<el-input v-model="user.password" autocomplete="off"></el-input>
</el-form-item>
</el-form>
4. 編寫login方法
methods: {
login() {
//定義常量儲存 url
const url = "http";
//發送請求
this.axios
.get(url, {
//攜帶參數
params: {
username: this.user.username,
password: this.user.password,
},
})
.then((res) => {
console.log();
//成功就将對話框關閉
this.dialogFormVisible = false;
})
.catch((error) => {
//出現錯誤使用ElementUI提供的消息提示
this.$message.error("對不起! 登入錯誤!");
});
},
},
3.6 Postman搭建mock server
- Mock server就是模拟一個伺服器,我們使用Mock server可以模拟背景接口,對請求進行響應.
- 在前後端分離的開發中 前端利用mockeserver模拟出對應接口,拿到傳回資料來調試,無需等後端開發人員完成工作。
postman模拟出一個server 步驟:
1. 使用postman模拟出一個server
2. 打開如下窗體,建立一個僞服務
- 第一步
- 第二步
- 第三步 複制URL
- 第四步 修改請求的URL
const url = "複制上面的位址/login";
3.7 登入成功後跳轉
- 在js中設定跳轉,常用的一種方法是 this.$router.push
methods: {
login() {
//定義常量儲存 url
const url = "https://33284b33-e976-4124-a3a0-17044addc1e1.mock.pstmn.io/login";
//發送請求
this.axios
.get(url, {
//攜帶參數
params: {
username: this.user.username,
password: this.user.password,
},
})
.then((res) => {
console.log(res.data);
alert("登入成功!");
//成功就将對話框關閉
this.dialogFormVisible = false;
//跳轉頁面,前端跳轉頁面必須使用路由,使用$router對象中的push方法
this.$router.push('/index');
})
.catch((error) => {
//出現錯誤使用ElementUI提供的消息提示
this.$message.error("對不起! 登入錯誤!");
});
},
},
接下來,就是運作測試啦~
以後,想使用 element-UI 的其他元件,直接去官網找就行了