【发布时间】:2021-04-11 05:26:12
【问题描述】:
我有一个用于许多 VueJS 组件的 JS 文件,该文件具有以下结构:
export const saver = () => {
const prepareData = () => {
// Empty function that I want to override on components only when it is necessary
}
const save = () => {
prepareData()
/* Logic to save data */
}
return {
save,
prepareData
}
}
export default saver
这就是我在 Vue 组件上导入此文件的方式:
<script>
import Saver from '@/utils/saver'
setup(props) {
const saver = Saver()
/** This is my approach so far....obviously is not working **/
saver.prepareData = () => {
console.log('It works!! Add here your extra logic...')
}
/***********************************************************/
return {
...toRefs(saver)
}
}
</script>
我正在使用新的组合 API,在模板中调用 save 函数,在按钮内:
<button @click="save()" type="submit">
我的目标是仅在需要在向后端提交数据之前添加一些额外逻辑的组件中覆盖函数prepareData。到目前为止,我的方法是尝试覆盖这样的组件内部的函数(在我需要覆盖函数的 Vue 组件内部):
saver.prepareData = () => {
console.log('It works!! Add here your extra logic...')
}
有什么想法吗?? :)) 提前谢谢
【问题讨论】:
-
在这种情况下代理 API 有帮助吗?您可以在此处查看文档:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
@AbrarHossain 不幸的是没有,因为 Saver 不是一个对象......
-
但变量 saver 保存从您的函数 Saver 返回的值,该函数返回一个对象文字。所以我不明白这一点。
标签: javascript vuejs3 vue-composition-api