Vue组件通信之子传父
子组件向父组件通信主要通过自定义事件实现。
这里我记录一个小例子来帮助自己记忆。
通过点击子组件的按钮去执行父组件的函数并使用子组件传来的数据。
子组件定义如下:
<template id="temp">
<div>
<button v-for="item in game" @click="itemclick(item)">{{item.name}}</button>
</div>
</template> const cpn={
template:'#temp',
data(){
return {
game:[
{id:,name:'英雄联盟'},
{id:,name:'地下城'},
{id:,name:'空洞骑士'},
{id:,name:'绝地求生'}
]
}
},
methods:{ }
}
这里我直接将vue实例作为了父组件:
const app = new Vue({
el:'#div1',
data:{
},
methods:{
},
components:{
cpn
}
})
由于程序简单,运行界面上只显示了几个按钮:

然后再为子组件添加函数:
itemclick(item){
// 使用$emit发射一个自定义事件,第一个参数是事件名称,第二个参数是默认传递参数
this.$emit('cpnclick',item)
}
从上面的模板可以看出这个函数再按钮点击时执行。在这个函数中,使用$emit方法发射了一个事件,事件名称为第一个参数:'cpnclick',第二个参数为该事件触发时传递的默认参数。
然后,在使用组件的html代码中用v-on指令监听这个事件:
<div id="div1">
<!-- 此处v-on指令绑定的事件便是之前emit发射的自定义事件,后面执行的函数为父组件中的函数 -->
<cpn @cpnclick="Cpnclick"></cpn>
</div>
并在父组件中添加函数Cpnclick(注意这个C大写不是之前那个cpnclick):
Cpnclick(item){
alert('接收到'+item.name)
}
在监听到事件时参数item会自动接受到前面传来的默认参数
运行效果:


完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="div1">
<!-- 此处v-on指令绑定的事件便是之前emit发射的自定义事件,后面执行的函数为父组件中的函数 -->
<cpn @cpnclick="Cpnclick"></cpn>
</div> <template id="temp">
<div>
<button v-for="item in game" @click="itemclick(item)">{{item.name}}</button>
</div>
</template>
<script src="vue.js"></script>
<script> const cpn={
template:'#temp',
data(){
return {
game:[
{id:1,name:'英雄联盟'},
{id:2,name:'地下城'},
{id:3,name:'空洞骑士'},
{id:4,name:'绝地求生'}
]
}
},
methods:{
itemclick(item){
// 使用$emit发射一个自定义事件,第一个参数是事件名称,第二个参数是默认传递参数
this.$emit('cpnclick',item)
}
}
} const app = new Vue({
el:'#div1',
data:{ },
methods:{
Cpnclick(item){
alert('接收到'+item.name)
}
},
components:{
cpn
}
})
</script>
</body>
</html>
Vue组件通信之子传父的更多相关文章
- Vue 组件通信(子组件向父组件传递数据)
1.自定义事件 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="U ...
- 计算属性、侦听属性、局部与全局组件使用、组件通信(父子互传)、ref属性、动态组件和keep-alive、插槽
今日内容概要 计算属性 侦听属性 局部组件和全局组件 组件通信之父传子 组件通信之子传父 ref属性(组件间通信) 动态组件和keep-alive 插槽 内容详细 1.计算属性 # 插值的普通函数,只 ...
- vue 组件之间相互传值 父传子 子传父
1.父传子 把要传入的值放到父标签里 子组件使用props接收 父写法 子写法 2.子传父 子组件: childrenOnclick() { // 发布自定义事件 this.$emit(" ...
- Vue ---- 组价 组件化 子传父 父传子
目录 补充js的for循环: 组件 1.组件的分类: 2.组件的特点 3.创建局部组件 4.全局组件 二.组件化 一.组件传参父传子 二.组件传参:子传父 补充js的for循环: // for in遍 ...
- vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值
首先文字简单撸一下 父子传子 -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父 ------在父组件升上自定义一个方法,在子组件里通过this ...
- Vue父子组件传值 | 父传子 | 子传父
父传子 父容器 <template> <div> <zdy :module='test'></zdy> </div> </templa ...
- Vue-组件传值:子传父和兄弟组件间常见的传值方式
前言 上篇介绍了我对vue组件化的理解和父组件对子组件传值的方式,这篇介绍下常见的子传父和兄弟组件间的传值方式 目录 子组件向父组件传值 任意组件间的传值方式 正文 子组件向父组件传值 关键知识点:$ ...
- vue子传父、父传子
子传父 vue子传父使用$emit传值 子组件: <template> <div> <button @click="toParent">点击传到 ...
- vue传参子传父
vue子传父用$emit实现 1.文件目录结构 2.parent父组件内容 <template> <div class="wrap"> <div> ...
随机推荐
- 【C#】WebService接受跨域请求及返回json数据
问题概述 通过Web Service发布服务供客户端调用是一种非常简单.方便.快速的手段,并且服务发布后会有一个服务说明页面,直观明了,如图: 一般情况下,在web页面中的JavaScript中调用W ...
- day7:字符串的操作/方法&字符串的格式化format&列表的操作
字符串的相关操作 1.字符串的拼接 strvar = "vegeta"+"ble" print(strvar) # vegetable 2.字符串的重复 str ...
- ffmpeg常见用法总结
1. 视频/音频剪切: ffmpeg -i input_file [-ss 00:00:10] [-t 00:00:20] output_file 去掉-ss指令表示从头开始 去掉-t指令表示剪切到结 ...
- 多国正在遭遇新型勒索病毒Petya侵袭
北京时间2017年6月27日晚,据外媒消息,多国正在遭遇 Petya 勒索病毒袭击,政府.银行.电力系统.通讯系统.企业以及机场都受到不同程度影响.请予关注,并做相应防范.相关事件描述及防范措施如下: ...
- 从安全的角度看待DNS
以前对DNS(Domain Name System)认识就大概的知道是一个提供域名解析服务,作为互联网的基础设施,任何一个IT人员都会或多或少都接触到DNS,随着我最近的接触不断提高,我发现DNS还是 ...
- ”initialization failure:0x0000000C“错误,何解?
今天开机后打开软件,报出这样的警告”initialization failure:0x0000000C“. 我问了度娘,看了很多回答,答案参差不齐.其中,有个回答还是很不错的(刚好我的是win10系统 ...
- F - Maximal Intersection --------暴力求解题
You are given n segments on a number line; each endpoint of every segment has integer coordinates. S ...
- springboot(九)文件上传
在企业级项目开发过程中,上传文件是最常用到的功能.SpringBoot集成了SpringMVC,当然上传文件的方式跟SpringMVC没有什么出入.下面我们来创建一个SpringBoot项目完成单个. ...
- Google免费新书-《构建安全&可靠的系统》
前段时间riusksk在公众号分享的Google安全团队的新书,好书,全英原版,开源免费. 免费下载地址:https://static.googleusercontent.com/media/land ...
- 查询MySQL数据库中表结构
什么是表结构?表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名.字段类型.及宽度,并将这些数据输入到计算机当中. 查询方法:以表‘employees’为例子 1.describe(d ...