element-ui圖像組件、上傳組件以及分頁(yè)組件實(shí)現(xiàn)代碼
一、圖像組件
< el-image>:保留了原生的img的屬性
<el-image
style="width: 100px; height: 100px"
:src="url"
:fit="fit">
</el-image>
//1.src屬性:圖像的地址,綁定變量用來指定圖片的地址,通常需要使用require來拉取圖片
//2.fit屬性:確定圖片如何適應(yīng)到容器框('fill', 'contain', 'cover', 'none', 'scale-down')
//3.lazy屬性:圖片懶加載(按需加載)二、導(dǎo)航菜單(NavMenu)
1、導(dǎo)航方向:通過mode屬性設(shè)置
2、菜單項(xiàng)
<el-menu mode="方向" background-color="背景色" text-color="文本顏色"
default-active="默認(rèn)打開的菜單"
active-text-color="活動(dòng)的菜單的文本的顏色">
<el-submenu index="1"> //菜單項(xiàng)
<template slot="title"> //標(biāo)題文本
<i class="el-icon-notebook-2"></i> //文本前的圖標(biāo)
<span>在線教材</span>
</template>
<el-menu-item index="1-1"> //子菜單項(xiàng)
<router-link to="/books" class="link">出版圖書</router-link>
</el-menu-item>
<el-menu-item index="1-2">教案管理</el-menu-item>
<el-menu-item index="1-3">教材管理</el-menu-item>
</el-submenu>
//disabled屬性:表示該菜單項(xiàng)不可用三、上傳組件:Upload
<el-upload
class="avatar-uploader"
style="margin-left: 30px;"
drag
action="http://localhost:8089/books/upload"
:show-file-list="false"
:on-change="handlePreview"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
multiple >
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i class="el-icon-upload"></i>
<div class="el-upload__text">將圖書圖片拖到此處,或<em>點(diǎn)擊上傳</em></div>
<div class="el-upload__tip" slot="tip">只能上傳jpg/png文件,且不超過2M</div>
/el-upload>
//1.drag屬性:表示是否啟用拖拽上傳
//2.action屬性:上傳服務(wù)器的地址
//3.show-file-list: 是否顯示已上傳文件列表(true/false)
//4.data:上傳時(shí)是否需要附帶額外的參數(shù)
//5.multiple:是否可以上傳多個(gè)文件
//6.on-change事件:當(dāng)上傳文件的內(nèi)容發(fā)生改變時(shí)觸發(fā),
//7.on-success事件:當(dāng)上傳成功后觸發(fā)
//8.before-upload事件:在上傳之前觸發(fā)(通常用于檢查上傳文件的格式、大小)
對(duì)應(yīng)的代碼:
//before-upload事件的處理函數(shù):圖片上傳之前的驗(yàn)證
beforeAvatarUpload(file) {
const isJPG = (file.type === 'image/jpeg'||'image/png');
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
this.$message.error('上傳頭像圖片只能是 JPG 格式!');
this.imageUrl = ''
}
if (!isLt2M) {
this.$message.error('上傳頭像圖片大小不能超過 2MB!');
this.imageUrl = ''
}
return isJPG && isLt2M;
},
//on-change事件的處理函數(shù):顯示圖片
handlePreview(file){
console.log('#####:',file)
this.imageUrl = URL.createObjectURL(file.raw)
},
//on-success事件觸發(fā)的函數(shù):圖片上傳成功后
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
},示例:
(1)使用elementUI的上傳組件將圖片上傳到服務(wù)器并保存到數(shù)據(jù)庫(kù)中
(2)在el-table控件中將上傳的圖片顯示出來
實(shí)現(xiàn)過程:
(1)給數(shù)據(jù)庫(kù)中的數(shù)據(jù)表增加一列(image_url):保存圖片在服務(wù)器中存儲(chǔ)路徑
(2)在服務(wù)器端給BookModel增加一個(gè)屬性imageUrl,該屬性映射的是數(shù)據(jù)表中的image_url列
(3)在前端組件中使用FormData對(duì)數(shù)據(jù)進(jìn)行打包:將表單控件的值和el-upload組件的值
? A、在組件的data中增加變量:uploadImage存放用戶選擇的文件信息
let formData = new FormData()formData.append('bookName',this.form.bookName)formData.append('bookAuthor',this.form.bookAuthor)formData.append('publishTime',this.form.publishTime)formData.append('bookPrice', this.form.bookPrice)formData.append('uploadImage', this.uploadImage)
? B、將formData提交給服務(wù)器端的接口
? (4)在后臺(tái)接口中使用formidable模塊來解析formData中的數(shù)據(jù)
? (5)將上傳到服務(wù)器端的圖片在客戶端的表格(el-table)中顯示出來
四、分頁(yè)組件
1、實(shí)現(xiàn)分頁(yè)的方式:
? (1)服務(wù)器端分頁(yè):通過底層的數(shù)據(jù)庫(kù)來實(shí)現(xiàn),前端會(huì)頻繁的和服務(wù)器交互,客戶端每次請(qǐng)求的是分頁(yè)的數(shù)據(jù)而不是所有數(shù)據(jù)
? (2)前端分頁(yè):一次性從數(shù)據(jù)庫(kù)中取出數(shù)據(jù)緩存起來,然后對(duì)緩存中的數(shù)據(jù)進(jìn)行分頁(yè)處理
2、實(shí)現(xiàn)分頁(yè)的要素:
? (1)總記錄數(shù)
? (2)每頁(yè)顯示的記錄數(shù)
? (3)需要的頁(yè)數(shù)
? (4)每頁(yè)數(shù)據(jù)的起始索引
3、element-ui的分頁(yè)組件:
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage4"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="400">
</el-pagination>
//1.size-change事件:每頁(yè)顯示的記錄數(shù)發(fā)生改變時(shí)觸發(fā),會(huì)自動(dòng)給事件處理函數(shù)傳遞一個(gè)參數(shù),參數(shù)值是新的每頁(yè)顯示的記錄數(shù)
//2.current-change事件:當(dāng)前的頁(yè)碼發(fā)生改變時(shí)觸發(fā),會(huì)自動(dòng)給事件處理函數(shù)傳遞一個(gè)參數(shù),參數(shù)值是新的頁(yè)碼
//3.current-page屬性:當(dāng)前頁(yè)的頁(yè)碼
//4.page-sizes屬性:每頁(yè)顯示的記錄數(shù)的列表,屬性值是一個(gè)數(shù)組
//5.page-size屬性:當(dāng)前每頁(yè)顯示的記錄數(shù),屬性值是一個(gè)數(shù)字
//6.layout屬性:分頁(yè)組件的布局
//7.total屬性:總記錄數(shù)總結(jié)
到此這篇關(guān)于element-ui圖像組件、上傳組件以及分頁(yè)組件實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)element-ui圖像組件、上傳組件、分頁(yè)組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue操作下拉選擇器獲取選擇的數(shù)據(jù)的id方法
今天小編就為大家分享一篇vue操作下拉選擇器獲取選擇的數(shù)據(jù)的id方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue-element-admin關(guān)閉eslint的校驗(yàn)方式
這篇文章主要介紹了vue-element-admin關(guān)閉eslint的校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
vscode+vue cli3.0創(chuàng)建項(xiàng)目配置Prettier+eslint方式
這篇文章主要介紹了vscode+vue cli3.0創(chuàng)建項(xiàng)目配置Prettier+eslint方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
解決vue keep-alive 數(shù)據(jù)更新的問題
今天小編就為大家分享一篇解決vue keep-alive 數(shù)據(jù)更新的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09

