Vue.js 单个文件组件实例之间的共享数据

Vue.js 单个文件组件实例之间的共享数据,vue.js,vue-component,instance,shared-data,Vue.js,Vue Component,Instance,Shared Data,有没有一种方法可以让同一个文件组件的多个实例共享数据,而不通过总线或事件传递数据? 我的意思是,对于数据部分E,它是唯一一个声明为函数的部分,实际上每个其他部分都在IStance之间共享,对吗 我想要的是PHP或C类的静态变量 我的特定用例 我有一个基于vue库(元素UI中的旋转木马)的组件的单个文件组件,该组件需要将其高度定义为属性,但我的包装器组件的每个实例都有不同高度的不同内容。 我想做的是让每个实例检查它的内容高度,找到最大值并设置包裹转盘的高度。 为此,我可以按类检索dom元素,并使用

有没有一种方法可以让同一个文件组件的多个实例共享数据,而不通过总线或事件传递数据?
我的意思是,对于
数据
部分E,它是唯一一个声明为函数的部分,实际上每个其他部分都在IStance之间共享,对吗

我想要的是PHP或C类的
静态
变量

我的特定用例 我有一个基于vue库(元素UI中的旋转木马)的组件的单个文件组件,该组件需要将其高度定义为
属性
,但我的包装器组件的每个实例都有不同高度的不同内容。
我想做的是让每个实例检查它的内容高度,找到最大值并设置包裹转盘的高度。
为此,我可以按类检索dom元素,并使用js检查最大高度,但我需要了解舒尔的情况,即每个实例只检索自己的内容,而不检索其他内容,因此,我希望有一个类似于共享计数器的想法,让每个实例在其
创建的
方法中递增这个计数器,并使用它生成自己的id

这可能吗?
如果没有,还有别的办法吗?我希望避免仅为此目的而向每个实例传递道具。

回答我的特定用例 不知道vue
$el
:这为我提供了组件实例的特定根dom元素,因此无需使用共享数据以编程方式生成不同的ID

但是,his没有回答有关在组件实例之间共享数据的原始问题。

回答1 使用Vuex,这是Vue状态管理的官方软件包

答复2 自己创建一个简化版本,如下所示:

从“Vue”导入Vue;
Vue.prototype.$state={
共享_变量:false,
一些柜台:15
};
米辛({
数据(){
返回{
$state:Vue.prototype.$state
}
}
});
window.Vue=新的Vue({
...
});
然后,您只需在组件中引用
这个.state

如果您想查看这些状态变量中的任何一个,可以这样做:

//某个组件。
导出默认值{
...
观察:{
“$state.shared_variable”:函数(newVal,oldVal){
//做一些关于改变的事情。
}
}
}

这个例子可以简化,但我长期以来就是这样使用的。

mixin可以解决您的用例问题。@UtsavPatel对此不是很确定,mixin是跨不同组件重用数据和逻辑的方法,但并没有像我需要的那样真正共享:我组件的每个实例都有自己的mixin内容副本99%的状态管理问题的答案是Vuex显示Vuex?mixin也可以有自己的
数据
属性。您可以通过它在不同的组件之间共享数据。非常喜欢答案2,它强调了如何根据需要定制vou组件有趣的是,我当时不知道Vuex,所以我想知道最好的方法是使用这种共享状态。Vuex可能更适合大型项目,但这个共享状态对象很棒,只需很少的代码即可提供完全的反应性。