Vue.js 如何在不展开的情况下将引用传递给方法/函数参数?

Vue.js 如何在不展开的情况下将引用传递给方法/函数参数?,vue.js,vuejs2,vue-composition-api,Vue.js,Vuejs2,Vue Composition Api,我们正在使用Vue Composition API,希望将ref对象(而不仅仅是值)作为参数传递给函数。一些代码需要澄清: 从'@vue/compositionapi'导入{defineComponent,ref} 导出默认定义组件({ 设置(){ 常量driverId=ref() 常量truckId=ref() 常量clearDriverId=()=>{ driverId.value=null } 上面的代码工作正常,但是我们也需要为truckId复制函数clearDriverId。这就是为

我们正在使用Vue Composition API,希望将
ref
对象(而不仅仅是值)作为参数传递给函数。一些代码需要澄清:

从'@vue/compositionapi'导入{defineComponent,ref}
导出默认定义组件({
设置(){
常量driverId=ref()
常量truckId=ref()
常量clearDriverId=()=>{
driverId.value=null
}
上面的代码工作正常,但是我们也需要为
truckId
复制函数
clearDriverId
。这就是为什么我们想要创建这样的东西:

constclearfield=(字段:Ref)=>{
field.value=null
}
从模板中访问:



当然,这不起作用,因为当从模板传递到函数时,
ref
driverId
会被展开。将完整的
ref
对象传递到函数的正确方法是什么?

setup()
中的一个解决方案是返回包含所有
ref
的对象/字典(防止其自动展开),然后可用于将特定的
ref
传递给函数。返回
ref
以及
ref
字典的实用程序(
toMyRefs()
)将有助于减少重复代码:


清晰的驱动程序
清障卡车司机
清龋
清除列车ID
driverId:{{driverId}}
卡车司机:{{truckId}
carId:{{carId}
trainId:{{trainId}
从'@vue/composition api'导入{defineComponent,ref}
常量toMyRefs=refs=>({
…参考文献,
参考文献:{
…裁判
}
})
导出默认定义组件({
设置(){
常量driverId=ref(1)
常数=参考(2)
常数carId=ref(3)
常数列车ID=参考(4)
常量clearField=(字段)=>{
field.value=0
}
返回{
…toMyRefs({
driverId,
卡车司机,
卡里德,
列车员,
}),
克利尔菲尔德,
}
}
})