javascript - 我应该将上传功能放在Vue组件中的哪里?

标签 javascript vue.js coding-style refactoring

我有一个ImageUploader我通过它在项目中上传图片的组件。

目前需要使用不同的端点进行上传,我想重构这个组件。

我看到两种方法:

  1. 我可以使用this.$emit(onUpload, files)将上传方法移动到父组件,并在父组件中:<ImageUploader @onUpload='uploadHandler'/>

  2. 将操作作为组件中的 prop 传递给用于加载的组件 <ImageUploader :uploadAction="AProjectMedia.UPLOAD_IMAGE" /> ,并在组件中像这样使用它:this.$store.dispatch(uploadAction, files)

我的选择有多正确?还有哪些选择?

最佳答案

第一个似乎更好,因为它可以使您的组件保持清洁以实现单一目的(上传文件)。任何副作用可能应该由 parent 处理。这样,父组件(不同的)承担不同的功能。

另一种选择是直接从子组件调用操作,尽管如果您的目标是可重用性,这可能会成为一个问题。

关于javascript - 我应该将上传功能放在Vue组件中的哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57378739/

相关文章:

javascript - 我如何在 jquery 中获得警告框?

javascript - Vuex:附加多个项目以存储在突变中

c++ - 是否可以自定义 XCode 的缩进样式?

javascript - html element.style.color 问题

scala - 在 Scala 中选择正确的异常处理

javascript - 如何检测 javascript 中的 document.addEventListener 支持

javascript - 用 URL 替换模式

html - 使用 HTML 和 CSS 在剪辑路径上添加不透明度

javascript - 如何使用 Vue 对全局变量使用react?

javascript - 如何在嵌入中显示用户的列值?