Vue.js VueJS 2$emit和$on
我使用VueJS 2,但我真的不知道如何从子组件到父组件进行通信 我有两个组件:仪表板和仪表板面板 在仪表板面板中,我有一种方法:Vue.js VueJS 2$emit和$on,vue.js,vuejs2,Vue.js,Vuejs2,我使用VueJS 2,但我真的不知道如何从子组件到父组件进行通信 我有两个组件:仪表板和仪表板面板 在仪表板面板中,我有一种方法: execute () { // emit to parent this.$emit('executeSQL', this.value) ... } 和在仪表板中: mounted () { // get event from DashboardPanel this.$on('executeSQL', function(value
execute () {
// emit to parent
this.$emit('executeSQL', this.value)
...
}
和在仪表板中:
mounted () {
// get event from DashboardPanel
this.$on('executeSQL', function(value) {
alert(value)
})
}
什么都没有发生,我在文档中找不到在哪里使用$on并且我不知道是否可以使用其他方法来实现它 您必须在
仪表板
组件中指定如何响应仪表板面板
组件中的执行SQL
事件。在仪表板的HTML模板中
:
<DashboardPanel v-on:executeSQL="doExecuteSQL($event)" />
methods: {
doExecuteSQL(value) { ... }
}
希望这会有所帮助。您必须在
仪表板组件中指定如何响应仪表板面板组件中的执行SQL
事件。在仪表板的HTML模板中
:
<DashboardPanel v-on:executeSQL="doExecuteSQL($event)" />
methods: {
doExecuteSQL(value) { ... }
}
希望这会有所帮助。假设DashboardPanel是子组件,您是否尝试过此。$parent。$emit
?假设DashboardPanel是子组件,您是否尝试过此。$parent。$emit
?是的,我使用了此方法,但是我不明白为什么$on事件在JS$on
中不起作用,它是用来监听同一组件发出的事件的。所以this.$on('executeSQL')
可以在仪表板组件中工作,但在仪表板组件中不工作是的,我使用了这种方法,但我不理解为什么$on事件在JS中不工作$on
用于侦听同一组件发出的事件。因此,this.$on('executeSQL')
将在仪表板面板组件中工作,但在仪表板组件中不工作