赞
踩
最近在做项目改造,发现之前element-plus中正常使用el-dropdown,在element中没响应,查了官方文档了解到两个版本dropdown的事件不一样
下面分别看一下两个版本的写法
- // Vue3里element-plus写法
-
- <el-dropdown class="dropdown">
- <el-button type="primary" text>
- 更多<el-icon><ArrowDown/></el-icon>
- </el-button>
- <template #dropdown>
- <el-dropdown-menu>
- <el-dropdown-item @click="deleteById(scope)">删除</el-dropdown-item>
- <el-dropdown-item @click="showRelease(scope)">发布</el-dropdown-item>
- <el-dropdown-item @click="cancel(scope)" disabled>撤销</el-dropdown-item>
- </el-dropdown-menu>
- </template>
- </el-dropdown>
-
- <script setup>
- //js部分
- const deleteById = (row) =>{
- console.log(row)
- }
- </script>
- // Vue2中element写法,官方示例
- <el-dropdown @command="handleCommand">
- <span class="el-dropdown-link">
- 下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item command="a">黄金糕</el-dropdown-item>
- <el-dropdown-item command="b">狮子头</el-dropdown-item>
- <el-dropdown-item command="c">螺蛳粉</el-dropdown-item>
- <el-dropdown-item command="d" disabled>双皮奶</el-dropdown-item>
- <el-dropdown-item command="e" divided>蚵仔煎</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
-
- <script>
- export default {
- methods: {
- handleCommand(command) {
- this.$message('click on item ' + command);
- }
- }
- }
- </script>
在element中,使用common事件感觉有点绕弯子,所以我用了.native 修饰符的方式实现了下拉菜单的事件触发。
.native - 监听组件根元素的原生事件。
主要是给自定义的组件添加原生事件。
- <el-dropdown class="dropdown">
- <el-button type="text">
- 更多<i class="el-icon-arrow-down"></i>
- </el-button>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item @click.native="deleteById(scope.row)">删除</el-dropdown-item>
- <el-dropdown-item @click.native="showRelease(scope.row)">发布</el-dropdown-item>
- <el-dropdown-item @click.native="cancel(scope.row)" disabled>撤销</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
-
- <script>
- //js事件就可以正常写啦
- export default {
- methods:{
- deleteById(row){
- console.log(row)
- }
- }
- }
- </script>
喜欢的点个关注吧
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。