如何"simulate"参考?



我有一个Vue3组件,其中setup()定义了以下函数:

const writeNote(note: Ref<Note>) => { console.log(`note ${note.id}` }

接收Ref<Note>,Note为接口。

这个函数在两种情况下调用:

<template>中的
  • 来自组件(@modified-note='writeNote')的事件,因此传递给函数的是引用
  • setup()中的一个函数中,检索Note类型的元素并将它们传递给writeNote。在这种情况下传递的是"naked"variable"(非参考)

如何解决这个矛盾?

  • 在模板中的调用中,以某种方式"取消引用"。发送的是什么?(在这种情况下,我会将函数中的参数类型修改为裸Note)
  • setup()的函数调用中,通过某种方式将正常变量转换为这个调用的引用?

您可以使用Vue的unref:

const writeNote(_note: Ref<Note> | Note) => { 
const note = unref(_note);
console.log(`note ${note.id}`);
}

或者你必须在传递给writeNote时创建一个反应性变量,正如你在问题中所描述的那样。这个解决方案更简洁一些,但需要更改writeNote的签名和

函数的内部结构。

相关内容

  • 没有找到相关文章

最新更新