我有一個產生變數的函式。我需要它們是反應性的--它可能會及時改變,然而Vue并沒有跟蹤這些變化
。 <template>
{{ parse('foo') }}}
</template>
<script>
從'vue'匯入 { ref }
輸出默認的 {
setup() {
函式 parse(param) {
const target = ref('初始值')
setTimeout(() => {
target.value = 'changed value
}, 3000)
回傳目標
}
回傳 { parse }
},
}
</script>
uj5u.com熱心網友回復:
在模板里面呼叫一個方法來渲染一些東西并不是一個好的做法,你可以在函式外面定義反應式資料,并在設定或onMounted鉤子中運行函式來修改目標屬性:
<template>
{{目標}}
</template>
<script>
從'vue'匯入 { ref }
輸出默認的 {
setup() {
const target = ref('初始值')
函式parse(param) {
setTimeout(() => {
target.value = 'changed value
}, 3000)
}
//呼叫該函式
parse('foo')
回傳 { target }
},
}
</script>
uj5u.com熱心網友回復:
我認為你希望顯示初始值,并在3秒后改變為改變的值,但是,在你的代碼中,你在函式中定義了目標,所以初始值從未被回傳,而只有改變的值是。
相反,const target = ref('initial value')應該被定義在你的函式之外,然后函式應該被相應地呼叫
<template>
{{目標}}
</template>
<script>
從'vue'匯入 { ref }
輸出默認的 {
setup() {
const target = ref('初始值')
函式parse(param) {
setTimeout(() => {
target.value = 'changed value
}, 3000)
}
parse('foo')
回傳 { 目標 }
},
}
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/310044.html
標籤:
