如何在 vue.js 中从父方法访问子方法

2023-12-07

我有两个嵌套组件,从父级访问子方法的正确方法是什么?

this.$children[0].myMethod()似乎可以解决问题,但它很丑陋,不是吗,还有什么更好的方法:

<script>
import child from './my-child'

export default {
  components: {
   child
  },
  mounted () {
    this.$children[0].myMethod()
  }
}
</script>

您可以使用ref.

import ChildForm from './components/ChildForm'

new Vue({
  el: '#app',
  data: {
    item: {}
  },
  template: `
  <div>
     <ChildForm :item="item" ref="form" />
     <button type="submit" @click.prevent="submit">Post</button>
  </div>
  `,
  methods: {
    submit() {
      this.$refs.form.submit()
    }
  },
  components: { ChildForm },
})

如果你不喜欢紧密耦合,你可以使用活动总线如@Yosvel Quintero 所示。下面是通过传递总线作为 props 来使用事件总线的另一个示例。

import ChildForm from './components/ChildForm'

new Vue({
  el: '#app',
  data: {
    item: {},
    bus: new Vue(),
  },
  template: `
  <div>
     <ChildForm :item="item" :bus="bus" ref="form" />
     <button type="submit" @click.prevent="submit">Post</button>
  </div>
  `,
  methods: {
    submit() {
      this.bus.$emit('submit')
    }
  },
  components: { ChildForm },
})

组件代码。

<template>
 ...
</template>

<script>
export default {
  name: 'NowForm',
  props: ['item', 'bus'],
  methods: {
    submit() {
        ...
    }
  },
  mounted() {
    this.bus.$on('submit', this.submit)
  },  
}
</script>

https://code.luasoftware.com/tutorials/vuejs/parent-call-child-component-method/

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

如何在 vue.js 中从父方法访问子方法 的相关文章

随机推荐

  • 非 QObject 派生类是否应该“始终”放入堆栈中?

    来自 Symbian 世界 我习惯于尽可能多地使用堆以避免耗尽堆栈空间 特别是在处理描述符时 CBase 派生类总是在堆上动态分配 因为如果不这样做 它们的成员变量将保持未初始化状态 相同的约定是否适用于 QObject 派生类 在 Qt
  • 结构化绑定:当某些东西看起来像引用并且行为类似于引用,但它不是引用时

    昨天我看到了一个有趣的问题这里关于结构化绑定 我们可以总结如下 考虑下面的示例代码 include
  • 集中我表单中的一些错误消息

    目前 我正在使用errorPlacement打印每个输入的错误消息 my form validate errorPlacement function error element Some code that print error belo
  • 如何选择contenteditable div中的所有文本?

    在将其标记为重复之前 我希望您意识到没有人实际上为这个特定问题提供了好的答案 在当焦点 单击时选择 contenteditable div 中的所有文本 接受的答案和蒂姆唐的答案都没有帮助 因为它们仅在元素已经聚焦时才有效 就我而言 我希望
  • Cocoa - 关于 NSUserDefaults 值更改的通知?

    假设我有一把钥匙 MyPreference 并通过存储相应的值NSUserDefaults 有没有办法在值修改时得到通知 或者可以通过绑定来完成吗 但在这种情况下 我希望我的对象能够收到更改通知 以便我可以执行其他任务 而不是将值绑定到 U
  • 警告 lme4:模型未能与 max|grad| 收敛

    我必须运行一个带有对数转换响应变量 一个连续变量作为固定效应和一个嵌套随机效应的 lmer first lt lmer logterrisize spm 1 studyarea teriid data Data table for anal
  • 使用 AirDrop 时,UIActivityViewController 完成处理程序已完成!

    我在用UIActivityViewController分享一些文本和网址 在发送一些文本和网址时效果很好 我当前需要使用完成处理程序来执行其他操作 具体取决于用户是否取消了UIActivityViewController或者实际上发送了一些
  • 为Python项目构建Docker镜像时如何避免重新安装包?

    我的 Dockerfile 是这样的 FROM my base ADD srv RUN pip install r requirements txt RUN python setup py install ENTRYPOINT run se
  • iPhone 崩溃 - 消息发送到已释放的实例

    好的 这是我收到的错误 CFRunLoopTimer invalidate message sent to deallocated instance 0x109b05a0 gdb 这是导致崩溃的代码 if waitingOpponentTi
  • 如何在 Google 地图中启用和禁用绘图控制选项?

    我有三个不同的按钮用于绘制形状 单击每个按钮 应启用专有绘图选项 并且应禁用其他选项 我的代码如下 drawShape js 文件 以下是我的 JavaScript 代码 我有三种不同的方法来绘制形状 圆形 矩形 多边形 通过下面的代码 每
  • 我可以将某些东西绑定到 ALT(元)吗

    我有 global set key f11 menu bar mode 我怎样才能将它绑定到左侧ALT Meta使用alt作为meta会不会有冲突 您无法将函数绑定到修饰键 因为当单独按下修饰键时 或者更准确地说 当按下一个或多个修饰键而没
  • 使用 Javascript 从待办事项列表中删除项目

    尝试我的第一个 Javascript 项目 使用 DOM 制作一个待办事项列表 添加项目后 如何让 删除 按钮起作用并删除该项目 删除按钮 此外 在进行新条目后 添加后的列表项仍保留在输入字段中 如何使其每个列表项后为空白 是的 我知道我的
  • 如果没有行匹配则返回一个值

    The authorityID TinyInt 专栏永远不会null 我想要的是返回一个15如果没有行 通过下面的查询 如果没有行 我什么也得不到 select top 1 isnull authorityID 15 from docAut
  • 使用 Gmail API 访问 CHATS 标签

    Gmail API 是否提供获取 Gmail 聊天日志的方法 Chats 是一个标签 就像 INBOX 一样 我希望能找到它用户 标签列表但它不存在 我必须启用某些功能才能显示 CHATS 标签吗 Gmail API 支持此功能吗 根据查找
  • Ensime 不适用于 sbt + android-plugin

    我用这个创建了一个项目 https github com gseitz android sbt project g8 当我在 emacs 中启动 ensime 编辑 src main scala Activity scala 时 我几乎到处
  • 输入中不支持的字符

    我想将一串字符分配给一个变量 但它说 there isn t a code to show 我有一个字符串想要分配给一个变量 d stunning st n Unsupported characters in input or word s
  • 在 C# 中使用 SSE

    我目前正在用 C 编写一个应用程序 该应用程序可以从使用 SSE 中受益匪浅 因为相对较小的代码片段会占用 90 95 的执行时间 代码本身也非常适合 SSE 因为它是基于矩阵和向量的 所以我继续并开始使用 Mono Simd 尽管这在执行
  • eclipselink 可执行 JAR 中的 PersistenceUnitLoadingEception

    我正在开发一个使用 eclipselink 的独立 java 应用程序 当我从 eclipse IDE 执行应用程序时一切都很好 但我已经导出了一个可执行 JAR 文件 从那以后我无法使 eclipseLink 工作 我在Eclipse社区
  • AttributeError:模块“tkinter”没有属性“tk”

    我正在尝试制作一个简单的音乐播放器 但我不断收到此错误 Traceback most recent call last File C Users nickw PycharmProjects untitled1 music player li
  • 如何在 vue.js 中从父方法访问子方法

    我有两个嵌套组件 从父级访问子方法的正确方法是什么 this children 0 myMethod 似乎可以解决问题 但它很丑陋 不是吗 还有什么更好的方法 您可以使用ref import ChildForm from component