如何使用 createElement 在渲染方法上定义 Vue 事件
How to define Vue Events on Render Method using createElement
我正在使用 ElementUi NavMenu,并使用 createElement
方法呈现功能,仅使用带有菜单标题和索引的 JSON 制作菜单项,仅 HTML 和 JS 文件,而不是 .vue 文件。
菜单已挂载,单击时显示子菜单,但子菜单(el-menu-item)的操作不起作用。我什至尝试了属性click,item-click,v-on: click when creating the-menu-item(ElementUi的文档告诉我们必须使用@click
,但这会导致createElement
定义属性时),但没有人工作,没有错误发生,就好像没有声明方法一样。
只有onclick
属性在el-menu-item上起作用,但是当我使用它时,没有调用vue组件的方法,所以我必须在组件之外创建一个函数(在class 例如),当调用此函数时,它会调用组件方法(我尝试 $ emits)并发生错误,因为未找到组件的方法。
如何在组件的 el-menu-item 内部渲染函数上添加 @click
(或类似)事件以调用同一组件的方法?
Documenation of NavMenu of ElementUI.
我是如何创建菜单项的:
createElement("el-menu-item",{
attrs:{
index:json[i].id,
click:json[i].onclick
}},
json[i].title
)
实际上,Vue.js 文档中提到了这一点。
参见https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth。
例如https://codepen.io/jacobgoh101/pen/ypjGqw?editors=0010
Vue.component("test", {
render: function(createElement) {
return createElement(
"button",
{
on: {
click: function() {
alert('click');
}
}
},
"Header"
);
}
});
我正在使用 ElementUi NavMenu,并使用 createElement
方法呈现功能,仅使用带有菜单标题和索引的 JSON 制作菜单项,仅 HTML 和 JS 文件,而不是 .vue 文件。
菜单已挂载,单击时显示子菜单,但子菜单(el-menu-item)的操作不起作用。我什至尝试了属性click,item-click,v-on: click when creating the-menu-item(ElementUi的文档告诉我们必须使用@click
,但这会导致createElement
定义属性时),但没有人工作,没有错误发生,就好像没有声明方法一样。
只有onclick
属性在el-menu-item上起作用,但是当我使用它时,没有调用vue组件的方法,所以我必须在组件之外创建一个函数(在class 例如),当调用此函数时,它会调用组件方法(我尝试 $ emits)并发生错误,因为未找到组件的方法。
如何在组件的 el-menu-item 内部渲染函数上添加 @click
(或类似)事件以调用同一组件的方法?
Documenation of NavMenu of ElementUI.
我是如何创建菜单项的:
createElement("el-menu-item",{
attrs:{
index:json[i].id,
click:json[i].onclick
}},
json[i].title
)
实际上,Vue.js 文档中提到了这一点。
参见https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth。
例如https://codepen.io/jacobgoh101/pen/ypjGqw?editors=0010
Vue.component("test", {
render: function(createElement) {
return createElement(
"button",
{
on: {
click: function() {
alert('click');
}
}
},
"Header"
);
}
});