我有一个产生变量的函数。我需要它们是React性的--它可能会随着时间的推移而变化,但是Vue并不跟踪这些变化
<template>
{{ parse('foo') }}
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
function parse(param) {
const target = ref('initial value')
setTimeout(() => {
target.value = 'changed value'
}, 3000)
return target
}
return { parse }
},
}
</script>
2条答案
按热度按时间bn31dyow1#
调用模板内部的方法来渲染某些东西不是一个好的实践,你可以在函数外部定义响应数据,然后在setup或
onMounted
钩子中运行函数来修改target属性:py49o6xq2#
我认为你期望的是初始值被显示,3秒后它被更改为更改值然而,在你的代码中,你在函数中定义了目标,所以初始值永远不会被返回,而是只有更改值。
相反,
const target = ref('initial value')
应该定义在函数之外,然后函数应该相应地被调用