首页 > 其他分享 >Vue 中 组件通信 - 子传父(自定义事件)

Vue 中 组件通信 - 子传父(自定义事件)

时间:2023-06-15 15:46:01浏览次数:34  
标签:itemclick Vue 子传父 自定义 item 事件 组件

Vue 中 组件通信 - 子传父(自定义事件)

Vue 中 组件通信 - 子传父(自定义事件)子传父步骤:在子组件的 data 里面定义好 要传递的数据在子组件的模版里面正常使用 该数据(一般是通过一定的动作,如点击,滑动等,来自定义事件向父组件传递,这里以 click 为例)在子组件的 methods 里面 定义 this.$emit(‘itemclick’,item),将 名字为 itemclick 的自定义事件传给父组件,item 是参数

Vue 中 组件通信 - 子传父(自定义事件)

子传父步骤:

  1. 在子组件的 data 里面定义好 要传递的数据
  2. 在子组件的模版里面正常使用 该数据
  3. (一般是通过一定的动作,如点击,滑动等,来自定义事件向父组件传递,这里以 click 为例)
  4. 在子组件的 methods 里面 定义 this.$emit(‘itemclick’,item),
    将 名字为 itemclick 的自定义事件传给父组件,item 是参数
  5. 在父组件使用子组件的时候,利用 v-on ,将接收到的数据传递给自己的事件 @itemclick=“cpnclick”, 即 将 子组件的 itemclick 事件,转为了 自己的 cpnclick 事件,进行操作
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<!--
    子传父步骤:
        1 在子组件的 data 里面定义好 要传递的数据
        2 在子组件的模版里面正常使用 该数据
        3 (一般是通过一定的动作,如点击,滑动等,来自定义事件向父组件传递,这里以 click 为例)
        4 在子组件的 methods 里面 定义 this.$emit('itemclick',item),
          将 名字为 itemclick 的自定义事件传给父组件,item 是参数
        5 在父组件使用子组件的时候,利用 v-on ,将接收到的数据传递给自己的事件 @itemclick="cpnclick"
          即 将 子组件的 itemclick 事件,转为了 自己的 cpnclick 事件,进行操作
-->

<div id="app">
  <!--  在这接收 子组件传过来的事件-->
  <cpn @itemclick="cpnclick"></cpn>
</div>

<!--子组件模版-->
<template id="cpn">
  <div>
    <button v-for="item in categories" @click="itemClick(item)">{{item.name}}</button>
  </div>
</template>


<script src="../../JS/vue.js"></script>
<script>

  //  子组件
  const cpn = {
    template: '#cpn',

    data() {
      return {
        categories: [
          {id: 0, name: 'a'},
          {id: 1, name: 'b'},
          {id: 2, name: 'c'},
          {id: 3, name: 'd'},
        ]
      }
    },


    methods: {
      itemClick(item) {
        //  通过 $emit 来向父组件发射事件(信息),自定义事件
        this.$emit('itemclick', item)
      }
    }
  }


  // 父组件
  const app = new Vue({
    el: '#app',
    data: {
      message: '你好呀'
    },

    components: {
      cpn
    },

    methods: {
      cpnclick(item) {
        console.log('cpnclick', item)
      }
    }
  })
</script>

</body>
</html>

标签:itemclick,Vue,子传父,自定义,item,事件,组件
From: https://www.cnblogs.com/mengdie1978/p/17483064.html

相关文章

  • Vue简单的分页功能实现一
    Vue简单的分页功能实现一前端的分页功能其实是对数据的分页处理,主要是在js中实现对数据的分页处理,这里分享两种简单的写法,以供参考。两种方法都是用vue来实现的。首先,相关的参数都一样,在vue里的data中定义好,如下所示:varvm=newVue({el:'#app',data:{list......
  • vue简单的分页功能实现二
    vue简单的分页功能实现二第二种使用vue实现分页功能的方法。首先,data数据定义:varvm=newVue({el:'#app',data:{listArray:[{'name':'赵*','age':'21','edu......
  • npm publish 发包报错npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/
    如果出现在发布的时候报这个错,说明你在package.json中登记的name已近被采用了。重名了,所以你得换一个。我们在发布一个包之前,最好拿着这个登记的name去搜一下,如果已近有了,那就要换一个。......
  • elementui 输入框 自定义图标
    <el-form-itemprop="visitorpath"><el-inputv-model="formData.visitorpath":placeholder="t('EnterName')"class="input-wit......
  • springboot 自定义listener 添加环境变量。 抄的springboot项目去掉了一些不用的ja
    1.自定义listener实现 ApplicationListener<ApplicationEnvironmentPreparedEvent>,Ordered(如果要设置优先级可以实现Ordered接口,注意order值越小优先级越高)publicclassMyListenerimplementsApplicationListener<ApplicationEnvironmentPreparedEvent>,Ordered{......
  • 搜狗五笔 date 自定义时间格式
    搜狗五笔date自定义时间格式 搜狗五笔date默认打出的是“2023-6-15”,如果需要“2023-06-15”,则需要在自定义短语中设置 属性设置-高级-找到“自定义短语”旁边的"设置"按钮,点击“设置”。点击“添加新定义”:缩写输入:date下面输入框输入:#$year-$month_mm-$day_dd保存......
  • vue填坑之解决部分浏览器不支持pushState方法
    前端使用vue-router做单页面路由并开启history模式时,会碰到一个问题:部分低版本的手机浏览器、部分app以及IE9浏览器由于不支持pushState方法,会导致页面加载不出来。解决这个问题的思路是:当浏览器支持pushState方法时,开启history模式,不支持则开启hash模式对链接做判断,当跳转的......
  • 使用vue ui创建vue项目
    vueui是什么?简单来说,vueui是一个可视化图形界面,方便你去创建、更新和管理vue项目,包括下载router,vuex,axios,elementui等插件,配置好一些属性以及依赖关系,方便我们使用,我个人第一次接触它就感觉非常非常非常智能和强大配置步骤  1、安装VueCLI,因为vueui是在VueCLI基础上封......
  • vue3错误归纳
    1,出错原因,找不到文件npminstall--save@/api/baseInfo/department//这个目录没有文件 2.packjson中那么没改,不知道为什么E:\gh-phm\ruoyi-ui\node_modules\normalize-package-data\lib\fixer.js:336thrownewError("Invalidname:"+JSON.stringify......
  • VUE使用Element-ui表达式拼接字符串 el-table-column的prop拼接字符串 拼接table 使
    VUE使用Element-ui表达式拼接字符串el-table-column的prop拼接字符串使用<templateslot-scope="scope">更改td里面值https://blog.csdn.net/WindNolose/article/details/125422409描述VUE中的标签属性,可以在属性前使用:,让属性绑定到data中的动态数据el-table-column标......