Vue 之孙组件向爷组件通信的实现


Posted in Javascript onApril 23, 2019

如何把孙组件内特定的数据传给爷组件?

例如

把孙组件的名字传给爷组件并在爷组件上显示

思路

  • 在孙组件被点击后 emit 事件 1 和孙组件的名字
  • 在父组件上监听孙组件 emit 出的事件 1,再次 emit 事件 2
  • 在爷组件上监听父组件 emit 出的事件 2,并触发处理函数
  • 这个处理函数将父组件传出的子组件名字显示在父组件上
<!DOCTYPE html>
<html lang="en" dir="ltr">
 <head>
  <meta charset="utf-8">
  <title></title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.7/dist/vue.js"></script>
 </head>
 <body>
  <div id="app">
   child name: {{child}}
   <parent v-on:say2='greeting("child", $event)'></parent>
  </div>
 </body>
 <script>
  Vue.component('parent', {
   template: `
   <div>
    <child v-on:say1='$emit("say2", $event)'></child>
   </div>   `
  })
  Vue.component('child', {
   template: `
    <div>
     child
     <button v-on:click='$emit("say1", "Jack")'>greeting</button>
    </div>
   `
  })
  new Vue({
   el: '#app',
   data: {
    child: '',
   },
   methods: {
    greeting: function (key, value) {
     this[key] = value
    },
   }
  })
 </script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
event.keyCode键码值表 附只能输入特定的字符串代码
May 15 Javascript
Ajax+Json 级联菜单实现代码
Oct 27 Javascript
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
Dec 14 Javascript
JavaScript中使用import 和require打包后实现原理分析
Mar 07 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
Jul 19 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 Javascript
viewer.js实现图片预览功能
Jun 24 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 Javascript
Vue infinite update loop的问题解决
Apr 23 #Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 #Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 #Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 #Javascript
vue项目首屏加载时间优化实战
Apr 23 #Javascript
灵活使用console让js调试更简单的方法步骤
Apr 23 #Javascript
详解实现一个通用的“划词高亮”在线笔记功能
Apr 23 #Javascript
You might like
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
PHP 裁剪图片
2021/03/09 PHP
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
python中pivot()函数基础知识点
2021/01/03 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
客户代表自我评价范例
2013/09/24 职场文书
《叶问2》观后感
2015/06/15 职场文书
导游词之潮音寺
2019/09/26 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js