子组件向父组件通信主要通过自定义事件实现。

这里我记录一个小例子来帮助自己记忆。

通过点击子组件的按钮去执行父组件的函数并使用子组件传来的数据。

子组件定义如下:

    <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组件通信之子传父的更多相关文章

  1. Vue 组件通信(子组件向父组件传递数据)

    1.自定义事件 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="U ...

  2. 计算属性、侦听属性、局部与全局组件使用、组件通信(父子互传)、ref属性、动态组件和keep-alive、插槽

    今日内容概要 计算属性 侦听属性 局部组件和全局组件 组件通信之父传子 组件通信之子传父 ref属性(组件间通信) 动态组件和keep-alive 插槽 内容详细 1.计算属性 # 插值的普通函数,只 ...

  3. vue 组件之间相互传值 父传子 子传父

    1.父传子 把要传入的值放到父标签里  子组件使用props接收 父写法 子写法 2.子传父 子组件: childrenOnclick() { // 发布自定义事件 this.$emit(" ...

  4. Vue ---- 组价 组件化 子传父 父传子

    目录 补充js的for循环: 组件 1.组件的分类: 2.组件的特点 3.创建局部组件 4.全局组件 二.组件化 一.组件传参父传子 二.组件传参:子传父 补充js的for循环: // for in遍 ...

  5. vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值

    首先文字简单撸一下 父子传子   -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父   ------在父组件升上自定义一个方法,在子组件里通过this ...

  6. Vue父子组件传值 | 父传子 | 子传父

    父传子 父容器 <template> <div> <zdy :module='test'></zdy> </div> </templa ...

  7. Vue-组件传值:子传父和兄弟组件间常见的传值方式

    前言 上篇介绍了我对vue组件化的理解和父组件对子组件传值的方式,这篇介绍下常见的子传父和兄弟组件间的传值方式 目录 子组件向父组件传值 任意组件间的传值方式 正文 子组件向父组件传值 关键知识点:$ ...

  8. vue子传父、父传子

    子传父 vue子传父使用$emit传值 子组件: <template> <div> <button @click="toParent">点击传到 ...

  9. vue传参子传父

    vue子传父用$emit实现 1.文件目录结构 2.parent父组件内容 <template> <div class="wrap"> <div> ...

随机推荐

  1. Ethical Hacking - NETWORK PENETRATION TESTING(13)

    Nmap Nmap is a network discovery tool that can be used to gather detailed information about any clie ...

  2. STL源码剖析:序列式容器

    前言 容器,置物之所也.就是存放数据的地方. array(数组).list(串行).tree(树).stack(堆栈).queue(队列).hash table(杂凑表).set(集合).map(映像 ...

  3. JELLY技术周刊 Vol.15 云游戏会是 5G 杀手级应用么?

    蒲公英 · JELLY技术周刊 Vol.15 听到"云游戏",或许我们的第一反应会是"云玩家"而不是那些上云的"游戏",在这个 5G 已来的 ...

  4. 修改map中原来的各种Key

    简单描述: 做数据迁移的时候,需要展示数据库的字段信息,但是我发现 Oracle的sql查询到的结果 出来默认是大写的 和 前端vue的参数小写开头+驼峰 不太一样 所以后台取到的数据都是是引用Lis ...

  5. vue学习(十七) 使用自定义指令 使文本框获得鼠标焦点

    需求:当我们进入某个页面,页面中的第一个input会自动获得焦点 光标闪烁,代表可输入 <div id="app"> //v-focus 是自定义的 <input ...

  6. 2. 妈呀,Jackson原来是这样写JSON的

    没有人永远18岁,但永远有人18岁.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...

  7. http连接,缓存,cookie,重定向,代理

    早期的HTTP协议使用短连接,收到响应后就立即关闭连接,效率很低:   HTTP/1.1默认启用长连接,在一个连接上收发多个请求响应,提高了传输效率:   服务器会发送“Connection:     ...

  8. CSS3多栏布局

    CSS3多栏布局 分栏数: column-count:auto|num: auto为默认值,表示元素只有一列.num取值为大于0的整数 每栏宽度: column-width:auto|<leng ...

  9. jmeter调试元件Debug Sampler的使用

    @@@@@@@@@@@@@@@ 活在当下 今天记录一下jmeter调试工具Debug Sampler的心得,调试对于计算机从业人员来说是家常便饭,jmeter虽然代码不多,但是也需要调试,那么如何进行 ...

  10. 中缀转逆波兰表达式 c++ 队列,栈

    记得早在几十天以前,xty 学长曾让我学这个.一直推到了现在哈 咕咕咕(能鸽善鹉orz) 抱歉,学妹我来还愿了! 中缀表达式比较适合人类的计算,但是后缀表达式更适合机器计算(毕竟没有那么多运算符优先级 ...