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> ...
随机推荐
- winserver2008R2安装配置JDK+tomcat之坑
记一次winserver安装jdk+tomcat 准备软件: jdk-8u241-windows-x64 apache-tomcat-8.5.46-windows-x64 一.安装java 1.安装j ...
- mysql实现主从复制/主从同步
业务场景 小公司业务代码存于一个服务器上,而这个服务器有的时候回宕机,导致业务停顿,造成影响.这个时候 就需要做高可用 两个ngix+两个tomcat+两个mysql实现高可用,避免单点问题.中间使用 ...
- 小白从零开始阿里云部署react项目+node服务接口(一:阿里云服务器)
准备阿里云服务器,并安装系统 如果没用自己服务器可以购买一个 https://www.aliyun.com/minisite/goods?userCode=x7i5glgc 初级购买一个1核2G的主机 ...
- Burp Suite Spider Module - 网络爬虫模块
Web application spdiering 和scanning 可以结合使用. Burp Suite 的Spider Module - Options 主要包含:Crawler Setting ...
- GPO - AppLocker
AppLocker can help you: Define rules based on file attributes that persist across app updates, such ...
- js中实现继承的方法
目录 借用构造函数 组合继承 原型式继承 寄生式继承 寄生组合式继承 借用构造函数 这种技术的基本思想很简单,就是在子类型构造函数的内部调用超类型的构造函数.另外,函数只不过是在特定环境中执行代码的对 ...
- JAVA基础系列:JDK目录结构
0. 名词解释 SDK: Softeare Development Kit,用于开发JavaEE,包括JDK. JDK: Java Development Kit,java开发工具包,包括Java编译 ...
- vue如何使用excel导出后台数据
let params = { // 请求参数 要下载Excel的id 'id':this.excelId }; //导入的接口名 api_excel_exportExcel().then(res =& ...
- Echarts柱状图顶部加数量显示
//加在series中itemStyle: { normal: { label: { show: true, position: 'top', textStyle: { color: '#615a5a ...
- python-scrapy爬虫框架爬取拉勾网招聘信息
本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等. 分析思路 分析查询结果页 在拉勾网搜索框中搜索'python'关键字, 在浏览器地址栏 ...