【vue2事件传参1】自定义参数:在elementui的change事件中,自定义参数的传递方法

一、问题:

        在elementUI的开发过程中,有时候会经常遇到,在已定义好的change事件中,想要传递一些自定义的数据,应该怎么解决?

二、解决方案:

1、select标签的change事件

                正常情况:默认返回的是目前选中的值。

                特殊情况:要传递自定义参数index呢?就需要用到$event,来获取默认的值,然后再其后面来实现对自定义参数的传递。

                注:【该$event是指当前触发的是什么事件(鼠标事件,键盘事件等)】

2、InputNumber计数器中的change事件

                正常情况:默认返回的是newValue,oldValue

                特殊情况:要传递自定义参数index呢?需要用到箭头函数来变通,实现自定义参数的传递。

三、具体案例:

案例1、select标签的change事件

        【准备数据】

         在data中定义select标签选项中的数据为options数组。数据格式如下:

data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: ''
      }

        【正常情况】

        在<template>模板中使用select标签来显示下拉选项,绑定change事件为selectedItem。代码如下:

<el-select v-model="value" placeholder="请选择" @change="selectedItem">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
</el-select>

        在methods方法中,定义selectedItem方法,来实现与标签change事件的响应。代码如下:

    selectedItem(e){
      console.log("你选择了:",e)
    },

        页面效果为:

2a9642c7ee5b4d9087369b8f49c15743.png

 当然,你也可以直接传递对象形式的。代码的具体变化如下:

db037577e97540909394ffa19e87f955.png

         【特殊情况】

        传递自定义的参数。以上面数据为例,如果想同时传递一个自定义index值,该如何去做呢?

        1.更改标签事件中的绑定事件的写法:

3d7bc8e5e5a341278934c89602b1c056.png

         2.更改绑定事件中参数传递的数量:

a4a9e4f4da964e299dcb97079b29650e.png

         输出结果为:

34e49be9040c424db496b891d55b8f21.png

 

<>案例2、InputNumber计数器中的change事件

        【正常情况】

34bfd6dea0484faab80cf400d8c29838.png

         页面效果:

9f42fccbbf0840b0a28ef885f8639110.png

        【特殊情况】

b7be148e91f14b5abfc29b3162a9b911.png

 页面效果:

ed41930211034ef3b8d1b61275a3421a.png

 

 

 

 

 

 

 

 

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Vue3,可以通过自定义事件传递参数。首先,在`setup()`函数实现`click`事件,并绑定自定义事件。`setup()`函数接受两个参数,`props`和`{ emit }`。其,`emit`用于触发自定义事件。例如,可以创建一个名为`singerDetail`的函数,用来处理点击事件,并通过自定义事件`select`传递参数。代码如下所示: ```javascript setup(props, { emit }) { const singerDetail = (item) => { emit('select', item) } return { singerDetail } } ``` 接下来,在模板使用该自定义事件。假设存在一个`<ul>`列表,每个`<li>`都需要传递当前项的数据。可以通过在`<li>`元素上绑定`click`事件,并将需要传递参数作为事件参数。例如: ```html <ul> <li ref="groupRef" v-for="item in group.list" :key="item.id" class="item" @click="singerDetail(item.mid)"> <span class="avatar"> <el-image :src="item.pic" lazy /> </span> <a class="name">{{item.name}}</a> </li> <el-divider style="width: 100%" border-style="dashed" /> </ul> ``` 在上述代码,通过`@click="singerDetail(item.mid)"`将`item.mid`作为事件参数传递给`click`事件。 最后,在需要使用该自定义事件的组件实现自定义函数。可以使用`let`关键字声明一个变量来接收参数,然后在函数内部进行相应的操作。例如,可以创建一个名为`selectSinger`的函数,接收`singer`作为参数,然后将该参数传递给路由跳转的`params`参数。代码如下所示: ```javascript selectSinger(singer) { let mySelectSinger = singer; this.$router.push({ name: 'singerDetail', params: { mySelectSinger: mySelectSinger } }) } ``` 通过以上步骤,就可以在Vue3实现自定义事件传参。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue3的自定义事件传参](https://blog.csdn.net/mfxcyh/article/details/125242529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ai安歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值