【发布时间】:2021-10-03 22:13:48
【问题描述】:
我将简化示例。基本上我在一个页面上有多个小部件,我认为最好不要将所有小部件复制到 v-dialog 中,而是使用参考并将它们添加到对话框中并在需要时返回到网格中。问题是当我将我的 html 附加到对话框中并尝试运行 this.$refs vue 丢失了无限加载组件的跟踪... this.$refs 不包含 ref="infinitiveLoading"。如果 some1 可以解释并可能推荐更好的做法.. thx
<div>
<div id="item_containerTest" ref="item_containerTest">
<span>Hello world</span>
<infinite-loading
ref="infinitiveLoading"
v-show="items.length !== 0 || this.loading"
@infinite="infiniteHandler"
>
<div slot="no-more"></div>
</infinite-loading>
</div>
<v-dialog v-model="scheduleDialog" id="dialog" ref="dialog"> </v-dialog>
</div>
//忽略 itemID 和 columnID,我需要它们,以便在对话框关闭后将项目附加回网格
openFullScreenDialog(itemId, columnId, title){
itemContainer = document.getElementById(`item_container${title}`);
dialog = document.getElementById("dialog");
dialog.append(itemContainer);
}
【问题讨论】:
-
在使用像 Vue.js 或 React.js 这样的框架时直接操作 DOM 总是自找麻烦。框架不知道这些操作,因此不会按预期运行。
标签: javascript html vue.js nuxt.js vuetify.js