Element UI是一個(gè)基于Vue.js 2.0的組件庫(kù),其提供了一系列常用的UI組件,其中也包括文件上傳組件。在Vue開(kāi)發(fā)中,上傳文件往往是必要的,因此學(xué)會(huì)如何使用Element UI上傳組件對(duì)于Vue的開(kāi)發(fā)者來(lái)說(shuō)是非常重要的。
要使用Element UI上傳組件,我們首先需要在項(xiàng)目中引入它,可以通過(guò)npm或者在官網(wǎng)下載Element UI的CSS和JS文件并在Vue項(xiàng)目中引用。Element UI上傳組件需要一個(gè)支持文件傳輸?shù)姆?wù)器,因此在使用前需要先搭建一個(gè)后端服務(wù)。
// 在Vue項(xiàng)目中引入Element UI以及Axios import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import axios from 'axios' Vue.use(ElementUI) Vue.prototype.$http = axios
在Vue中使用Element UI上傳組件非常簡(jiǎn)單,只需要在模板中使用el-upload標(biāo)簽即可,它需要跟el-button標(biāo)簽和el-icon標(biāo)簽一起來(lái)使用。el-upload標(biāo)簽中有一個(gè)action屬性,指定了文件上傳的URL地址,當(dāng)文件選擇后,會(huì)自動(dòng)將文件傳輸至該URL,傳輸完成后會(huì)有一個(gè)回調(diào)函數(shù)來(lái)通知上傳的結(jié)果。同時(shí)還有一個(gè)data屬性,用來(lái)傳遞額外的數(shù)據(jù),如文件描述等。
點(diǎn)擊上傳 只能上傳jpg/png文件,且不超過(guò)500kb
除了使用現(xiàn)成的上傳組件,我們還可以通過(guò)JS來(lái)自己構(gòu)建上傳邏輯,Element UI通過(guò)ajax選項(xiàng)提供了更加個(gè)性化的上傳方式。我們需要手動(dòng)發(fā)送ajax請(qǐng)求,在請(qǐng)求頭中加入multipart/form-data,同時(shí)將文件對(duì)象作為FormData的參數(shù)傳遞給后端服務(wù)。
handleSubmit() {
const data = new FormData()
data.append('file', this.file)
this.$http({
method: 'post',
url: '/upload',
headers: {
'content-type': 'multipart/form-data'
},
data
})
.then(response =>{
console.log(response.data)
})
.catch(error =>{
console.log(error)
})
}
總的來(lái)說(shuō),Element UI提供了方便的文件上傳組件,幫助我們快速實(shí)現(xiàn)文件上傳功能。同時(shí),它也提供了更加自由的上傳方式供高級(jí)開(kāi)發(fā)者使用。掌握Element UI上傳組件的使用方法,可以為我們開(kāi)發(fā)高質(zhì)量的Vue項(xiàng)目提供較大的幫助。