我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue怎么自定义事件传参

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue怎么自定义事件传参

这篇“vue怎么自定义事件传参”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么自定义事件传参”文章吧。

自定义事件传参

先来简单看个例子

TodoList.vue :

<template>  <ul>    <li>      <todo-item        v-for="item in list" :key="item.id"        :status="doneList.includes(item.id)"        :info="item"        @click="changeStatus0"      ></todo-item>    </li>    <li>      <todo-item        v-for="item in list" :key="item.id"        :status="doneList.includes(item.id)"        :info="item"        @click="changeStatus1()"      ></todo-item>    </li>    <li>      <todo-item        v-for="item in list" :key="item.id"        :status="doneList.includes(item.id)"        :info="item"        @click="changeStatus2(item)"      ></todo-item>    </li>    <li>      <todo-item        v-for="item in list" :key="item.id"        :status="doneList.includes(item.id)"        :info="item"        @click="changeStatus3(arguments, item)"      ></todo-item>    </li>  </ul></template>
<script>import TodoItem from './TodoItem'export default {  name: 'TodoList',  components: {    TodoItem  },  data () {    return {      list: [        {          id: 0,          name: 'zero',          desc: 'zerozerozero'        },        {          id: 1,          name: 'one',          desc: 'oneoneone'        },        {          id: 2,          name: 'two',          desc: 'twotwotwo'        }      ],      doneList: [1]    }  },  methods: {    changeStatus0 (val, obj) {      console.log(val)      console.log(obj)    },    changeStatus1 (val) {      console.log(val)    },    changeStatus2 (obj) {      console.log(obj)    },    changeStatus3 (arr, obj) {      console.log(arr)      const val = arr[0]      if (val) {        const index = this.doneList.indexOf(obj.id)        this.doneList.splice(index, 1)      } else {        this.doneList.push(obj.id)      }    }  }}</script>

TodoItem.vue :

<template>  <label @click="changeStatus">    <span>{{ info.name }}: {{ status }}</span>  </label></template>
<script>export default {  name: 'TodoItem',  props: {    status: {      type: Boolean,      default: false    },    info: {      type: Object,      default () {        return {}      }    }  },  methods: {    changeStatus () {      this.$emit('click', this.status, this.info)    }  }}</script>
  • changeStatus0 打印的是TodoItem.vue中 $emit 后跟的两个参数。

  • changeStatus1 打印的是 undefined。

  • changeStatus2 打印的是 v-for 循环中的当前 item 对象。

  • changeStatus3 中 arr 参数对应 $emit 后跟的两个参数,item 参数对应 v-for 循环中的当前 item 对象,注意 template 中的写法 @click="changeStatus3(arguments, item)",按照 changeStatus3 的方式可以实现多种方式的混合传参。

自定义事件的$event传参问题

$event 是 vue 提供的特殊变量,用来表示原生的事件参数对象 event

在原生事件中,$event是事件对象 可以点出来属性 

在原生事件中,$event是事件对象,在自定义事件中,$event是传递过来的数据(参数)

在自定义事件中,$event是传递过来的数据

原生vue里的$event

<tempalte>   <button @click = “getEvent($event)”>点击</button></template>
<script>   export default {      methods:{         getEvent(e) {            console.log(e)            // e.target 是你当前点击的元素            // e.currentTarget 是你绑定事件的元素           #获得点击元素的前一个元素           e.currentTarget.previousElementSibling.innerHTML           #获得点击元素的第一个子元素           e.currentTarget.firstElementChild           # 获得点击元素的下一个元素           e.currentTarget.nextElementSibling           # 获得点击元素中id为string的元素           e.currentTarget.getElementById("string")           # 获得点击元素的string属性           e.currentTarget.getAttributeNode('string')           # 获得点击元素的父级元素           e.currentTarget.parentElement           # 获得点击元素的前一个元素的第一个子元素的HTML值           e.currentTarget.previousElementSibling.firstElementChild.innerHTML         },      }   }</script>

自定义事件里的$event

子组件传值 

export default {    methods: {        customEvent() {            this.$emit( custom-event ,   value )        }    }}

父组件 

接收自定义事件

<template>    <div>        <my-item v-for="(item, index) in list" @custom-event="customEvent(index, $event)">            </my-list>    </div></template>

接收$event

export default {    methods: {                           e就是接收过来的$event 现在他就是子组件传过来的值 不再是 对象事件         customEvent(index, e) {            console.log(e) //  some value        }    }}

以上就是关于“vue怎么自定义事件传参”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue怎么自定义事件传参

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue怎么自定义事件传参

这篇“vue怎么自定义事件传参”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么自定义事件传参”文章吧。自定义事件传参
2023-06-30

vue自定义指令传参方式是什么

这篇文章主要介绍“vue自定义指令传参方式是什么”,在日常操作中,相信很多人在vue自定义指令传参方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue自定义指令传参方式是什么”的疑惑有所帮助!接下来
2023-06-30

vue怎么给自定义的组件绑定点击事件

这篇文章主要介绍“vue怎么给自定义的组件绑定点击事件”,在日常操作中,相信很多人在vue怎么给自定义的组件绑定点击事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么给自定义的组件绑定点击事件”的疑
2023-06-30

C#事件怎么自定义

这篇文章主要介绍“C#事件怎么自定义”,在日常操作中,相信很多人在C#事件怎么自定义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#事件怎么自定义”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!事件,是C
2023-06-17

vue如何自定义组件传值

本篇内容介绍了“vue如何自定义组件传值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!自定义组件传值常规prop-event父组件
2023-07-04

Vue组件的自定义事件与事件监听

Vue组件的自定义事件和事件监听器允许组件之间和组件与外部应用程序进行通信。自定义事件用于向其他组件或全局事件总线发送事件,携带数据并由事件监听器响应。事件监听器监听特定事件并执行相应代码,建立组件之间的互动和模块化。事件总线是全局对象,提供发布订阅机制,无需直接耦合就能在组件间进行通信。有效实践包括:使用描述性事件名称、明确定义事件有效负载、及时移除事件监听器、命名空间事件名称避免冲突,以及谨慎使用事件总线。
Vue组件的自定义事件与事件监听
2024-04-02

Vue组件中的自定义事件是什么

小编给大家分享一下Vue组件中的自定义事件是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!主要介绍组件的自定义事件的概念,使用等。何为组件自定义事件:组件自定
2023-06-29

vue怎么自定义keepalive组件

本文小编为大家详细介绍“vue怎么自定义keepalive组件”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么自定义keepalive组件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为什么会出现这种情
2023-07-02

vue自定义组件怎么添加使用原生事件

今天小编给大家分享一下vue自定义组件怎么添加使用原生事件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。自定义组件如何添加使
2023-06-30

Vue组件的自定义事件和全局事件总线怎么使用

这篇“Vue组件的自定义事件和全局事件总线怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue组件的自定义事件和全局
2023-07-05

Vue怎么在自定义指令绑定的处理函数中传递参数

这篇文章主要介绍“Vue怎么在自定义指令绑定的处理函数中传递参数”,在日常操作中,相信很多人在Vue怎么在自定义指令绑定的处理函数中传递参数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么在自定义指令
2023-07-05

Vue和Element怎么自定义上传封面组件功能

这篇文章主要讲解了“Vue和Element怎么自定义上传封面组件功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue和Element怎么自定义上传封面组件功能”吧!先来看一下效果:第一张
2023-07-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录