vue如何封装选择文件组件和选择文件api
更新时间:2024年08月30日 17:21:25 作者:Mr阿斌
这篇文章主要介绍了vue如何封装选择文件组件和选择文件api问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
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))
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
vue中调接口的方式详解this.$api、直接调用、axios
这篇文章主要介绍了vue中调接口的方式:this.$api、直接调用、axios,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-11-11vue3+arco design通过动态表单方式实现自定义筛选功能
这篇文章主要介绍了vue3+arco design通过动态表单方式实现自定义筛选,本文主要实现通过动态表单的方式实现自定义筛选的功能,用户可以自己添加筛选的项目,筛选条件及筛选内容,需要的朋友可以参考下2024-05-05vue学习笔记之指令v-text && v-html && v-bind详解
这篇文章主要介绍了vue学习笔记之指令v-text && v-html && v-bind详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05vue-cli3在main.js中console.log()会报错的解决
这篇文章主要介绍了vue-cli3在main.js中console.log()会报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-04-04
最新评论