在调用者组件中访问组件参数
Access component parameters inside caller component
我有一个组件,我在另一个组件中调用它:
组件 1
<template>
<FiltersComponent />
</template>
export default Vue.extend({
components: { FiltersComponent }
)}
所以,这个 FiltersComponents 有一些我想访问我的组件的参数
组件 2 数据
data() {
return {
TestList: [] as string[],
Test2List: null as string[] | null,
}
},
如何访问 COMPONENT 1 中的 TestList 和 Test2List?
始终根据需要将状态存储在组件树中尽可能高的位置,这意味着如果您需要组件 1 中的这些列表,请将它们存储在那里。然后,您可以使用 props 和 events 来访问和更新组件 2 中的数据。
或者,您可以使用像 Vuex 这样的集中存储。
有多种可能性:如果一个组件是另一个组件的子组件或同级组件,您可能希望在 props
(passing data down) and events
(passing data up). Otherwise, if they are not siblings or children, you can use a store like vuex
进行循环。
要使用文档示例:
vue 入口点:(例如,app.js
):
import { createApp } from 'vue'
import { createStore } from 'vuex'
// Create a new store instance.
const store = createStore({
state () {
return {
someProperty: 'someValue'
}
},
mutations: {
update (state, value) {
state.someProperty = value
}
}
})
const app = createApp({ /* your root component */ })
// Install the store instance as a plugin
app.use(store)
在您的组件的 script
部分:
this.$store.commit('update', 'YOUR_VALUE')
其他成分:
const val = this.$store.state.someProperty
然而,这只是一个非常基本的例子。您绝对应该查看文档,尤其是有关 state, getters and mutations.
的部分
您可以使用 ref
、
实现相同的效果
检查下面的例子
<template>
<FiltersComponent ref="childComponent" /> <!-- Adding ref over here -->
</template>
export default Vue.extend({
components: { FiltersComponent }
)}
然后在组件 1 中的任何方法或安装部分中。您可以访问组件 2 数据,例如
this.$refs.childComponent.TestList
或
this.$refs.childComponent.Test2List
是不是很简单? ;)
我有一个组件,我在另一个组件中调用它:
组件 1
<template>
<FiltersComponent />
</template>
export default Vue.extend({
components: { FiltersComponent }
)}
所以,这个 FiltersComponents 有一些我想访问我的组件的参数
组件 2 数据
data() {
return {
TestList: [] as string[],
Test2List: null as string[] | null,
}
},
如何访问 COMPONENT 1 中的 TestList 和 Test2List?
始终根据需要将状态存储在组件树中尽可能高的位置,这意味着如果您需要组件 1 中的这些列表,请将它们存储在那里。然后,您可以使用 props 和 events 来访问和更新组件 2 中的数据。
或者,您可以使用像 Vuex 这样的集中存储。
有多种可能性:如果一个组件是另一个组件的子组件或同级组件,您可能希望在 props
(passing data down) and events
(passing data up). Otherwise, if they are not siblings or children, you can use a store like vuex
进行循环。
要使用文档示例:
vue 入口点:(例如,app.js
):
import { createApp } from 'vue'
import { createStore } from 'vuex'
// Create a new store instance.
const store = createStore({
state () {
return {
someProperty: 'someValue'
}
},
mutations: {
update (state, value) {
state.someProperty = value
}
}
})
const app = createApp({ /* your root component */ })
// Install the store instance as a plugin
app.use(store)
在您的组件的 script
部分:
this.$store.commit('update', 'YOUR_VALUE')
其他成分:
const val = this.$store.state.someProperty
然而,这只是一个非常基本的例子。您绝对应该查看文档,尤其是有关 state, getters and mutations.
的部分您可以使用 ref
、
检查下面的例子
<template>
<FiltersComponent ref="childComponent" /> <!-- Adding ref over here -->
</template>
export default Vue.extend({
components: { FiltersComponent }
)}
然后在组件 1 中的任何方法或安装部分中。您可以访问组件 2 数据,例如
this.$refs.childComponent.TestList
或
this.$refs.childComponent.Test2List
是不是很简单? ;)