【发布时间】:2020-03-05 00:21:28
【问题描述】:
我想存储来自 App.vue 的输入值,并在另一个组件中使用它。我该怎么做?我不需要在模板中显示值,我只需要其他组件函数中的值。在 JS 中我可以只使用全局变量,但如何在 Vue 中实现它?
App.vue:
<template>
<div id='app'>
<!-- App.vue has search bar -->
<b-form-input @keydown='search' v-model='input'></b-form-input>
<div>
<!-- Here's my other components -->
<router-view />
</div>
</div>
</template>
<script>
export default {
name: 'App',
data () {
return {
input: '',
value: ''
}
},
methods: {
search () {
this.value = this.input
this.input = ''
}
}
}
</script>
另一个组件:
<template>
<div>
<p>I'm another component</p>
<p>App.vue input value was: {{value}} </p>
</div>
</template>
<script>
export default {
props: ['value'],
data () {
return {
value: ''
}
}
}
</script>
这是我试图实现的基本逻辑。 App.vue 中的输入值 --> anotherComponent.vue
【问题讨论】:
-
路由后面是 anotherComponent.vue 吗?
-
视情况而定,我们可以做到这一点的方法很少,1.如果是父子关系,则使用props 2.否则使用vuex store 3.如果涉及路由器,则使用路由器参数4 . 可以使用事件总线将您的值作为方法参数值传递并在另一端使用(事件总线不是为此场景构建的,不推荐......但可以使用)
-
另一个组件在我的路由器后面,我在“route/:name”中传递了“name”(即输入值),但我也在尝试存储 :name -value 可以说是一个变量。
标签: javascript vue.js vuejs2 vue-component