Vue.js 如何使用createElement在Render方法上定义Vue事件

Vue.js 如何使用createElement在Render方法上定义Vue事件,vue.js,element-ui,Vue.js,Element Ui,我正在使用ElementUi NavMenu,并使用带有createElement方法的render函数使菜单项只使用带有菜单标题和索引的JSON,只使用HTML和JS文件,而不是.vue文件 菜单已安装,单击时会显示子菜单,但子菜单(el菜单项)的操作不起作用。我甚至在创建菜单项时尝试了属性click、item click、v-on:click(ElementUi的文档告诉我们必须使用@click,但是在定义属性时,这会导致createElement出错),但是没有人工作,也不会发生错误,就好

我正在使用ElementUi NavMenu,并使用带有
createElement
方法的render函数使菜单项只使用带有菜单标题和索引的JSON,只使用HTML和JS文件,而不是.vue文件

菜单已安装,单击时会显示子菜单,但子菜单(el菜单项)的操作不起作用。我甚至在创建菜单项时尝试了属性click、item click、v-on:click(ElementUi的文档告诉我们必须使用
@click
,但是在定义属性时,这会导致
createElement
出错),但是没有人工作,也不会发生错误,就好像没有声明方法一样

只有
onclick
属性在el菜单项上起作用,但是当我使用它时,vue组件的方法不会被调用,因此我必须在组件之外创建一个函数(例如,在类上),当调用此函数时,它会执行对组件方法的调用(我尝试$emits),并发生错误,因为找不到组件的方法

如何在组件的渲染函数内的el菜单项上添加
@单击
(或类似)事件以调用同一组件的方法

如何创建菜单项:

createElement("el-menu-item",{
    attrs:{
        index:json[i].id,
        click:json[i].onclick
    }},
    json[i].title
)

实际上,Vue.js文档中提到了这一点

e、 g

Vue.component("test", {
  render: function(createElement) {
    return createElement(
      "button",
      {
        on: {
          click: function() {
            alert('click');
          }
        }
      },
      "Header"
    );
  }
});