vue封装选择文件组件和选择文件api
方式一:选择文件组件
<template>
<div @click="clickHandle">
<slot></slot>
<input type="file" hidden
ref="inputRef"
@change="changeFile"
:accept="accept"
:multiple="multiple"
/>
</div>
</template>
<script>
export default {
name:'ChooseFile',
props:{
accept:{
type:String
},
multiple:{
type:Boolean,
default:false
}
},
methods: {
clickHandle() {
this.$refs.inputRef.click()
},
changeFile(e){
this.$emit('chooseFile',e.target.files)
}
},
}
</script>
<style scoped>
</style>
方式二:选择文件api
const ChooseFile = (options) => {
if(typeof options ==='function'){
options={success:options}
}
if (typeof options === 'object') {
let input = document.createElement("input")
document.body.appendChild(input)
input.type = 'file'
input.hidden='hidden'
if (options.accept) {
input.accept = options.accept
}
if (options.multiple != null) {
input.multiple = options.multiple
}
input.click()
input.onchange = (e) => {
options.success(e.target.files)
document.body.removeChild(input)
}
}
}
export default ChooseFile
挂载在vue原型上
使用
this.$chooseFile((files)=>console.log(files))
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END











暂无评论内容