Javascript VUEJ从组件向主vue实例发出单击
我试图从我的组件向我的主vue实例发出一个单击事件,但我能够解决它。目前,我的控制台中没有收到任何消息,因此它不会转到该函数,因此到目前为止,代码如下所示:Javascript VUEJ从组件向主vue实例发出单击,javascript,vue.js,Javascript,Vue.js,我试图从我的组件向我的主vue实例发出一个单击事件,但我能够解决它。目前,我的控制台中没有收到任何消息,因此它不会转到该函数,因此到目前为止,代码如下所示: // component LeftUserListTileComponent <template> <v-list-tile @click="$emit('toggleLeftUserPanel')"> <v-list-tile-action> <v-
// component LeftUserListTileComponent
<template>
<v-list-tile @click="$emit('toggleLeftUserPanel')">
<v-list-tile-action>
<v-icon>exit_to_app</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>User Settings</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</template>
<script>
export default {
data () {
return {
}
},
methods:{
toggleLeftUserPanel () {
// what to do here?
}
};
</script>
Vue.component('left-user-list-tile', require('./components/LeftUserListTileComponent.vue'));
Vue.component('left-user-panel', require('./components/LeftUserPanelComponent.vue'));
const app = new Vue({
el: '#app',
props: {
source: String
},
data: {
leftUserPanel: null
},
toggleLeftUserPanel () {
console.log("In toggleLeftUserPanel func");
this.leftUserPanel != this.leftUserPanel;
}
});
//组件LeftUserListTileComponent
退出到应用程序
用户设置
导出默认值{
数据(){
返回{
}
},
方法:{
ToggleftUserPanel(){
//在这里做什么?
}
};
组件('left-user-list-tile',require('./components/LeftUserListTileComponent.Vue');
组件('left-user-panel',require('./components/LeftUserPanelComponent.Vue');
const app=新的Vue({
el:“#应用程序”,
道具:{
资料来源:String
},
数据:{
leftUserPanel:null
},
ToggleftUserPanel(){
log(“在toggleftuserpanel func中”);
this.leftUserPanel!=this.leftUserPanel;
}
});
如果您在单击时直接发出事件,则在第一个切换leftuserpanel()
中,您不应执行更多操作
为了工作,当从其子元素接收到toggleLeftUserPanel事件时,您应该声明您期望从父元素中得到什么,例如:
<toggle-left-user-panel @toggleLeftUserPanel='togglePanel' />
这样,将启用父子通信,并且父级应对子级emit
事件作出反应
希望它有帮助!如果您想发出事件,您需要在组件内部设置它。如果您只想在用户单击标题时获取单击,您应该能够使用@click.native:
<v-list-tile @click.native="console.log('Title is clicked!')">
...
...
您实际在哪里监听发出的事件?在@click…上单击后,我正在尝试监听它,请查看此内容以了解如何监听发出的值:@Stephan-v好的,我更改了代码,但如何更改组件emit中的值leftUserPanel?您是否解决了问题?它可以工作?如果可以,请标记一个an回答为有效,以便标记为已解决并保持S.O清洁。如果没有,请尝试更新问题,我们将尽力帮助您
<v-list-tile @click.native="console.log('Title is clicked!')">
...