【发布时间】:2021-09-22 00:31:47
【问题描述】:
当我尝试更新反应性“全局变量”的属性时(使用 Vue 3),我遇到了一个问题。当我更改用户名时,这应该(?)重新渲染元素,但事实并非如此。我在这里错过了什么?
<div id="app">
{{ controller.user.name }}
<button @click="controller.change">Change</button>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
var controller = {
user: {
name: 'Pete'
},
change: () => {
controller.user.name = 'Arnold'
}
}
var reactive = Vue.reactive({controller});
var app = Vue.createApp({
data() {
return reactive
}
}).mount('#app')
</script>
它确实显示了初始名称。当按下按钮时,控制器中的名称值会发生变化(您可以在控制台中检查它是否已更改)。只有重新渲染不会发生。
也尝试使用this.controller.user.name,但没有任何运气。
【问题讨论】:
-
尝试向 div 元素添加“key”属性,将其设置为 key="controller.user.name"
标签: javascript vue.js vuejs3