我有一个Vue组件,它使用从另一个文件导入的布尔变量,但无论我做什么,它似乎都不会在变量更改时更新。
变量确实更新了,我通过使用setInterval将其记录到控制台来确认。
我认为在Vue 3中这应该是有效的,然而在使用ref()或添加watch()时它都不起作用。
<script>
import * as NetworkManager from "@/lib/network-manager";
import MainMenu from "@/components/main-menu/main-menu.vue";
import GameView from "@/components/game/game-view.vue";
export default {
name: "App",
components: {
MainMenu,
GameView,
},
data() {
return {
NetworkManager,
};
},
};
</script>
<template>
<p>{{ NetworkManager.connected }}</p>
<game-view v-if="NetworkManager.connected" />
<main-menu v-else />
</template>
1条答案
按热度按时间jtw3ybtb1#
您的
NetworkManager
对象变为React式,但您必须更新Vue
的属性。否则,.Vue
无法检测更改。请检查下面的练习场。正确的方法是:
1.使用
lib/network-manager
库中的组合物API添加Vue
React性1.仅从Vue例程更新
NetworkManager
1.使用自定义或
Vuex/Pinia
存储