<template> <div style="width: 256px"> <a-button type="primary" style="margin-bottom: 16px" @click="toggleCollapsed"> <a-icon :type="collapsed ? 'menu-unfold' : 'menu-fold'" /> </a-button> <a-menu :default-selected-keys="['1']" :default-open-keys="['2']" mode="inline" theme="dark" :inline-collapsed="collapsed" > <template v-for="item in list"> <a-menu-item v-if="!item.children" :key="item.key"> <a-icon type="pie-chart" /> <span>{{ item.title }}</span> </a-menu-item> <sub-menu v-else :key="item.key" :menu-info="item" /> </template> </a-menu> </div></template><script>// recommend use functional component// <template functional>// <a-sub-menu :key="props.menuInfo.key">// <span slot="title">// <a-icon type="mail" /><span>{{ props.menuInfo.title }}</span>// </span>// <template v-for="item in props.menuInfo.children">// <a-menu-item v-if="!item.children" :key="item.key">// <a-icon type="pie-chart" />// <span>{{ item.title }}</span>// </a-menu-item>// <sub-menu v-else :key="item.key" :menu-info="item" />// </template>// </a-sub-menu>// </template>// export default {// props: ['menuInfo'],// };import { Menu } from 'ant-design-vue';const SubMenu = { template: ` <a-sub-menu :key="menuInfo.key" v-bind="$props" v-on="$listeners"> <span slot="title"> <a-icon type="mail" /><span>{{ menuInfo.title }}</span> </span> <template v-for="item in menuInfo.children"> <a-menu-item v-if="!item.children" :key="item.key"> <a-icon type="pie-chart" /> <span>{{ item.title }}</span> </a-menu-item> <sub-menu v-else :key="item.key" :menu-info="item" /> </template> </a-sub-menu> `, name: 'SubMenu', // must add isSubMenu: true isSubMenu: true, props: { ...Menu.SubMenu.props, // Cannot overlap with properties within Menu.SubMenu.props menuInfo: { type: Object, default: () => ({}), }, },};export default { components: { 'sub-menu': SubMenu, }, data() { return { collapsed: false, list: [ { key: '1', title: 'Option 1', }, { key: '2', title: 'Navigation 2', children: [ { key: '2.1', title: 'Navigation 3', children: [{ key: '2.1.1', title: 'Option 2.1.1' }], }, ], }, ], }; }, methods: { toggleCollapsed() { this.collapsed = !this.collapsed; }, },};</script>
渲染出来的标签 怎么添加@click
我在红框里直接添加点击事件报错
???你写的就是组件啊?
改 render 语法到 .vue 文件,直接走引入,
看起来清爽又好维护?
有什么必要一定要通过 render 语法的形式写组件吗?
利用事件冒泡机制,将事件绑定在父节点上,使用 event.target
判断事件来自哪个节点并进行处理。
可以考虑使用JSX来处理,然后就正常写 <div onClick={(event) => {}}></div>
绑定事件就好了。
渲染函数 & JSX | Vue.js
具体可以借鉴 AntD Vue Pro
早期版本的思路
src/components/Menu/SideMenu.vue at v2 · vueComponent/ant-design-vue-pro
src/components/Menu/menu.js at v2 · vueComponent/ant-design-vue-pro
标签TITLE属性出现的时间怎么修改?
当前表格每一行由表单生成。且表格是通过jquery 的dataTable生成,第一列为复选框,在表格中追加行时如何同时为每一行添加勾选框啊。这个是我加的,但显然是有问题的 以下是相关代码 这里是添加每一行的代码
上述代码在开发阶段,pc 和 移动端模拟器中访问,数据请求正常且渲染成功; 部署服务器后,移动端真机没有发起请求,其他访问方式正常。 有无大佬遇到过或知道怎么解决? 目标站点(未备案) http://114.132.79.6/
我的使用场景是需要批量绘制大量图表,不过这些图表具有一定的规律性,整行或者整列是同类型图表,有什么方式可以优化性能呢?现在问题是当滚动的时候,图表渲染跟不上,滚动交互也不流畅。
我读了这个关于如何实现这一点的老答案。但是,由于它涉及使用,这是一种现在已被弃用的方法,我认为我们需要更新答案。 我尝试过把标签放在一个HBox里面,然后得到它的大小,或者得到HBox的大小,但是没有任何运气。而且我也试过用. label.getBoundsInLocal()。getWidth()。 SSCCE:导入javafx.scene.control。标签导入javafx.scene.lay