目 录CONTENT

文章目录

组件方法事件传参

JomBarry
2023-11-29 / 0 评论 / 0 点赞 / 31 阅读 / 0 字 / 正在检测是否收录...

事件传参各种问题

第三方或者抽离的组件的标签中存在其他预传参数时,需要传递其他自定义参数会出现覆盖参数的问题,如何传递其他参数?

一个参数

vue项目中可以使用 $event 代替组件方法中原本的单个参数,再加上自己想要多传的参数即可。

例子:element UI的el-checkbox上有change事件,参数是当前选中的值,假设change事件绑定的是onChange方法

<template>
    <el-checkbox v-model="value" @change="onChange">选择</el-checkbox>
</template>
<script>
export default {
  methods: {
    onChange(val) {
        console.log(val)
    }
  }
}
</script>
<style></style>
<template>
    <el-checkbox v-model="value" @change="onChange('选择', $event)">选择</el-checkbox>
</template>
<script>
export default {
    methods: {
        onChange(val, event) {
            console.log(val, event)
        }
    }
}
</script>
<style></style>

多个参数

这个时候可以使用arguments代表多个参数,使用时可以加上...扩展符。

例如:el-upload组件,属性before-remove的参数为上传的文件和文件列表这两个,在方法函数用file和fileList形参接收

<template>
    <el-upload :before-remove="beforeRemove('upload', ...arguments)" :file-list="fileList">
        <el-button size="small" type="primary">点击上传</el-button>
        <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
    </el-upload>
</template>
<script>
export default {
  methods: {
    beforeRemove(file, fileList) {
        console.log(file, fileList)
    }
  }
}
</script>
<style></style>
<template>
    <el-upload :before-remove="beforeRemove" :file-list="fileList">
        <el-button size="small" type="primary">点击上传</el-button>
        <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
    </el-upload>
</template>
<script>
export default {
  methods: {
    beforeRemove(eventName, ...args) {
        console.log(eventName, args)
    }
  }
}
</script>
<style></style>
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
Traffmonetizer VPS 回血赚取额外收益

评论区