如何在Vue.js中将更改后的值传递给其他组件的方法?
在header组件中,我们称之为App.vue,其中有一个select元素:如何在Vue.js中将更改后的值传递给其他组件的方法?,vue.js,vuejs2,Vue.js,Vuejs2,在header组件中,我们称之为App.vue,其中有一个select元素: <select v-model="locale"> <option value="en">English</option> <option value="pl">Polski</option> </select> 我如何通知其他组件的同级,而不是子组件,比如Users.vue,locale参数已更改?我想使用JS方法而不是绑定DOM元素来获取
<select v-model="locale">
<option value="en">English</option>
<option value="pl">Polski</option>
</select>
我如何通知其他组件的同级,而不是子组件,比如Users.vue,locale参数已更改?我想使用JS方法而不是绑定DOM元素来获取代码中的新值。由于更改了区域设置,新值应触发页面重新加载。我应该使用Users.vue的观察者、道具,还是有其他方法?vue有一种方法可以做到这一点,事件总线这里有一个来自文档的链接,告诉您如何做到这一点 您也可以参考这篇有用的文章 它可能看起来像这样
var bus = new Vue()
// in component A's method
bus.$emit('language-change', 'en')
// in component B's created hook
bus.$on('language-change', function (language) {
// ...
})
一个想法是使用根组件来管理两个对等方之间的通信,使您的页面看起来像这样:
这能回答你的问题吗?
也许考虑使用总线来进行数据同步,或者使用VUEXvar bus = new Vue()
// in component A's method
bus.$emit('language-change', 'en')
// in component B's created hook
bus.$on('language-change', function (language) {
// ...
})