vue.js - 为什么 Vue 有额外的马上?它打破了 this.$root 完全
问题描述
如果你打开任何 CodeSandbox 默认的 Vue 模板,或者只是像这样的 vue-cli 默认模板
import Vue from "vue";
import App from "./App.vue";
Vue.config.productionTip = false;
new Vue({
render: h => h(App)
}).$mount("#app");
它将有一个额外的<Root />
元素。
它破坏了所有写的东西this.$root
。
为什么会这样?
有没有办法解决这个问题?
解决方案
如果您向根 Vue 实例添加一些数据 - 您将在 DevTools 中看到它与您的 App 组件中的数据不同:
import Vue from "vue";
import App from "./App.vue";
Vue.config.productionTip = false;
new Vue({
data:
{
someTest: 123,
},
render: h => h(App)
}).$mount("#app");
正在发生的事情已经发生了多年。您无法解决它,因为这是设计使然,没有它就无法工作。
如果您想访问 App 而不是根实例 - 那么您将不得不使用this.$root.$children[0]
推荐阅读
- python - DigitalOcean Spaces 上带有 IMAGES_STORE 的 Scrapy 蜘蛛
- java - 如何在 Java 中将 Json 节点插入另一个节点?
- arrays - pandas 合并 2 个不同大小、列和频率的数据帧
- android - 如何提高大尺寸文件的上传速度?
- java - 我可以自定义逃生功能吗?
- jenkins - 如何使用詹金斯并行执行 2 个纽曼任务。?
- sas - 如何使用前一行 SAS 的值创建字符串
- php - 将动态生成的 php 变量传递给 jquery 函数
- apache-spark - 无法将 DF 摄取到 elasticsearch
- android - Ajax 请求在实时 Google Play 应用程序中不起作用