我有一个ImageUploader
我通过它在项目中上传图片的组件。
目前需要使用不同的端点进行上传,我想重构这个组件。
我看到两种方法:
我可以使用
this.$emit(onUpload, files)
将上传方法移动到父组件,并在父组件中:<ImageUploader @onUpload='uploadHandler'/>
将操作作为组件中的 prop 传递给用于加载的组件
<ImageUploader :uploadAction="AProjectMedia.UPLOAD_IMAGE" />
,并在组件中像这样使用它:this.$store.dispatch(uploadAction, files)
我的选择有多正确?还有哪些选择?
最佳答案
第一个似乎更好,因为它可以使您的组件保持清洁以实现单一目的(上传文件)。任何副作用可能应该由 parent 处理。这样,父组件(不同的)承担不同的功能。
另一种选择是直接从子组件调用操作,尽管如果您的目标是可重用性,这可能会成为一个问题。
关于javascript - 我应该将上传功能放在Vue组件中的哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57378739/