Vuejs 2:将事件从组件发送到父级

2024-02-17

我有这个代码:

html

<div id="app">
  {{text}}
  <my-component></my-component>
</div>

js

Vue.component('my-component', {
  template: '<button @click="click">Click me</button>',
  methods: {
    click() {
        this.$emit('send', 'bye')
    }
  }
})

new Vue({
  el: "#app",
  data: {
    text: "hello"
  },
  created() {
    this.$on('send', (text) => {
        this.text = text;
    })
  }
})

工作示例:https://jsfiddle.net/rjurado/y4yf6nve/ https://jsfiddle.net/rjurado/y4yf6nve/

为什么事件send不起作用?


this.$emit仅参考Vue组件。你需要使用root实例属性与根实例中的组件进行通信。所以基本上将根添加到事件中:

this.$root.$emit('send', 'bye')

this.$root.$on('send', (text) => {
      this.text = text;
  })

工作示例:jsFiddle https://jsfiddle.net/pss01r52/1/

Vue.js 中央事件总线

更好的方法是拥有中央事件总线:docs https://v2.vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication

var bus = new Vue();

Vue.component('my-component', {
  template: '<button @click="click">Click me</button>',
  methods: {
    click() {
        bus.$emit('send', 'bye')
    }
  }
})
    
new Vue({
  el: "#app",
  data: {
    text: "hello"
  },
  created() {
    bus.$on('send', (text) => {
        this.text = text;
    })
  }
})

工作示例:jsFiddle https://jsfiddle.net/uu01tdez/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vuejs 2:将事件从组件发送到父级 的相关文章

随机推荐

  • 获取Redis集群中所有key

    我使用的是Redis集群版本redis 5 0 5 我想查看 Redis 集群中存在的所有密钥 我知道我们使用独立的KEYS 获得所有钥匙 如何查看Redis集群中的所有键 redis cli h hostname p 90001 c ho
  • 如何托管我自己的私有 conda 存储库?

    我有几个相互依赖的 python 项目 我为每个项目都有不同的发行版本 不同的项目可能依赖于特定项目的不同发行版本 我想在内部服务器上创建自己的 conda 存储库 在其中我可以将这些项目的版本作为 conda 包推送 其他项目可以从那里安
  • window.location.href 与单击锚点

    点击有什么区别 a href href a vs calling window location href 只要有可能 您应该使用 a href foo html over window location href 有很多很好的理由 如果您
  • 有没有办法检查缓冲区是否采用 Brotli 压缩格式?

    我是一名实习生 正在研究在软件中使用 Brotli 压缩是否可以比当前版本 使用 GZip 带来性能提升 我的任务是使用 GZip 更改任何内容以使用 Brotli 压缩 我需要替换的一个函数会检查缓冲区是否包含使用 GZip 压缩的数据
  • 在 Python 中处理非常大的数字

    我一直在考虑用 Python 进行快速扑克牌评估 我突然想到 加快该过程的一种方法是将所有牌面和花色表示为素数 并将它们相乘以表示手牌 至惠特 class PokerCard faces 23456789TJQKA suits cdhs f
  • NodeJs如何在控制台中显示结构化表格

    不安装新包可以吗 Here i am using cli table package 有什么简单的方法可以做到吗 您可以使用控制台 表 https developer mozilla org en US docs Web API Conso
  • 如何在 create-react-app 中更新 Jest 测试框架?

    我已经创建了一个应用程序create react app https github com facebookincubator create react app包裹 我发现 Jest 版本 15 1 1 存在错误 但我意识到在版本 16 中
  • 函数模板的显式实例化失败 (g++)

    我在函数模板的显式实例化方面遇到一些问题 即链接错误 在Visual Studio下项目链接正常 仅在g Unix下 使用Eclipse CDT 链接产生错误 在一个大项目中 函数调用是静态库的一部分 它与动态库链接 函数架构如下 函数模板
  • 如何从 FilterAttribute 中获取当前 Url?

    我正在编写一个授权过滤器属性 但我无法弄清楚如何以字符串形式获取当前 url 以便我可以将其作为参数传递给 LogOn 操作 目标是 如果用户成功登录 他们将被重定向到他们最初尝试访问的页面 public override void OnA
  • 将 Python None 转换为 JavaScript null

    在 Django 视图中 我生成一个如下所示的数据集 data 22 23 18 19 21 None 22 20 我使用以下方法将此数据传递给 JavaScript 变量 data json simplejson dumps data 用
  • 从 S3 下载文件时 AWS Lambda 中出现“只读文件系统”错误

    当我将 file csv 放入 S3 存储桶时 我在 lambda 函数中看到以下错误 该文件并不大 我什至在打开文件进行读取之前添加了 60 秒的睡眠时间 但由于某种原因 该文件附加了额外的 6CEdFe7C 这是为什么 Errno 30
  • 使用电子邮件和密码验证用户身份

    我有一个只允许用户通过 username 登录的表单 我决定只允许用户通过电子邮件而不是用户名登录 首先 这不是与通过电子邮件登录相关的任何问题的重复 因为在我的场景中 我验证并验证了用户forms py在他继续在视图中进行最终登录之前 这
  • 协议缓冲区 Java RPC 堆栈

    根据this http en wikipedia org wiki Protocol Buffers维基百科条目 Protocol Buffers 与 Facebook 的 Thrift 协议非常相似 只是它不包含用于定义服务的具体 RPC
  • Flutter:如何允许内容重叠 SliverAppBar?

    在android中我们使用的是app behavior overlapTop 64dp 为了达成这个 我想要重叠内容与上面的 flutter 中的 GIF 相同 My code class DetailsPage extends State
  • 通过分割视图控制器使用多个详细视图

    如您所知 一个UISplitViewController只有一个根控制器和一个详细视图控制器 但我想使用另一个详细视图控制器 当我从根控制器 弹出窗口控制器 中选择列表项时 选择应该触发不同的详细视图 即 row1 触发详细视图 1 row
  • 在 Blazor WebAssembly 客户端应用程序中使用 Serilog 作为日志记录提供程序

    我想在客户端和服务器端的 blazor web assembly net 6 应用程序中使用 serilog 在本文 https nblumhardt com 2019 11 serilog blazor 我发现了如何将日志条目中继到服务器
  • 运算符 << 和继承

    我有以下 C 类 class Event friend ofstream operator lt lt ofstream ofs Event e class SSHDFailureEvent public Event friend ofst
  • 从 glTexStorage3D 切换到 glTexImage3D

    glBindTexture GL TEXTURE 2D ARRAY texture id glTexStorage3D GL TEXTURE 2D ARRAY 1 No mipmaps GL RGBA8 Internal format wi
  • Spring Security:不同路径的多个 OpenID Connect 客户端?

    使用 Spring Boot 2 1 5 和 Spring Security 5 我尝试使用两个不同的 OpenID 客户端 基于 Keycloak 这是我们所拥有的application properties spring securit
  • Vuejs 2:将事件从组件发送到父级

    我有这个代码 html div text div