在 Vuejs 中将数据从子级传递到父级(有那么复杂吗?)

2023-11-22

我读过:

vuejs 从子组件更新父数据

https://forum.vuejs.org/t/passing-data-back-to-parent/1201/2

概念是相同的,我需要将数据对象从子级传递给父级。我用过$emit将数据传递给父组件,但它不起作用。你知道出了什么问题吗?你可以在这里查看我的代码:

Vue.component('list-products', {
  delimiters: ['[[', ']]'],
  template: '#list-products-template',
  props: ['products'],
  data: function () {
    return {
      productSelected: {}
    }
  },
  methods: {
    showDetailModal: function (product) {
        console.log('click product in child, how can i pass this product to productSelected data in parent?');
      console.log(product);
      this.productSelected = product;
      this.$emit('clickedShowDetailModal', product);
    }
  }
});


var app = new Vue({
  delimiters: ['[[', ']]'],
  el: '#resultComponent',
  data: {
    listProducts: [
        {'name':'test1',id:1},
        {'name':'test2',id:2},
        {'name':'test3',id:3}
    ],
    productSelected: {}
  },
  methods: {
    clickedShowDetailModal: function (value) {
      console.log('value');
      console.log(value);
      this.productSelected = value;
    }
  }
});
<script src="https://unpkg.com/vue/dist/vue.js"></script>

<div id="resultComponent" data-toggler=".small-up-2" class="row small-up-1">
  <list-products :products="listProducts"></list-products>
</div>

<script type="text/x-template" id="list-products-template">
  <div>
    <div class="column column-block" v-for="(product, index) in products" :product="product" :index="index" :key="product.id">
    <li class="more-benefits">
        <a @click="showDetailModal(product)">Click me [[ product.name ]] and check console.log »</a>
    </li>
    </div>
  </div>
</script>

道具是为了parent -> child

您可以使用$emit for child -> parent

v-on指令捕获子组件发出的事件$emit

子组件触发 clicked 事件:

export default {
   methods: {
     onClickButton (event) {
         this.$emit('clicked', 'someValue')
     }
   }
}

父组件接收点击事件:

<div>
    <child @clicked="onClickChild"></child>
</div>

...

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

在 Vuejs 中将数据从子级传递到父级(有那么复杂吗?) 的相关文章

随机推荐

  • Hibernate Oracle 表空间注释

    我正在注释我的 DAO 并使用 hibernate3 hbm2ddl 生成 ddls 有没有办法注释表空间 不 没有办法开箱即用 我过去使用以下相当复杂的方法解决了这个问题 创建您自己的注释 TableSpec具有表空间和其他必要的属性 E
  • 复选框的 CSS 边框

    我正在应用 jQuery 复选框的样式 reg checkbox css border thin solid red 边框在 IE 中工作正常 但在 mozilla 中不行 如何使其兼容浏览器 使用大纲 http jsfiddle net
  • Visual Studio 组件缓存已过期

    几乎每次我尝试运行 EF 迁移的 update database 命令时 我都会在 Visual Studio 2015 中收到以下错误 使用 1 个参数调用 GetService 时发生异常 异常 使用 2 个参数调用 Invoke Vi
  • iOS Swift Flood 填充算法

    我为接触点的 桶填充 洪水填充 创建了这个扩展 extension UIImageView func bucketFill startPoint CGPoint newColor UIColor var newRed newGreen ne
  • 如何将模型从一个 Django 应用程序迁移到新的应用程序中?

    我有一个 Django 应用程序 里面有四个模型 我现在意识到这些模型之一应该位于单独的应用程序中 我确实安装了 South 用于迁移 但我不认为这是它可以自动处理的事情 如何将旧应用程序中的模型之一迁移到新应用程序中 另外 请记住 我需要
  • 当没有指定值时,是否应该跳过验证?

    我在 GlassFish 3 上使用 JSF2 我有一个接受可选电话号码的表格 我有这个自定义电话号码验证器 如下 并且我将该字段设置为 required false 因为电话号码在表单中是可选的 问题是 该领域的价值总是得到验证 当没有指
  • ASP.net 对根证书存储的权限

    是否可以授予 asp net 对证书存储的读取权限 如果是 怎么办 如果否 我是否需要为每个证书文件手动设置权限 如果是 这些文件在硬盘上的物理位置在哪里 一般来说 您授予权限A证书 我使用这样的方法来查找定制的证书并授予权限 如果您使用的
  • AngularJs 指令内的数据绑定

    我很难弄清楚如何确保在创建指令时维护双向数据绑定 这是我正在使用的东西和小提琴 http jsfiddle net dkrotts ksb3j 6 HTML
  • ASP.NET Core MVC,从数据库获取文件并渲染为图像

    我将图像数据存储在 SQL 表中 字段类型为varbinary 最大 我还存储图像内容类型 使用 Microsoft ASP NET Core MVC 和 Dapper 我尝试从数据库中获取文件并将其呈现为图像 这是我的文件模型 using
  • 如何使用base64设置图像源

    我想将图像源设置为 base64 源 但它不起作用 JSfiddle net NT9KB img src JavaScript document getElementById img src data image png base64 iV
  • 测试使用 Flask-WTF validate_on_submit 的 POST

    我很难测试 POST 以将类别添加到数据库 在该数据库中我使用 Flask WTF 进行验证和 CSRF 保护 对于CRUD操作请pm我的网站 我使用过 Flask Flask WTF 和 Flask SQLAlchemy 这是我的第一个独
  • 将数据从一个数据库传输到另一个数据库

    如何从一个数据库中取出数据并插入到另一个数据库表中 我不能这样做 请帮助我将数据从一个设备传输到另一个设备 有多种方法可以做到这一点 以下是两个选项 选项1 右键单击 要复制的数据库 选择 任务 gt 生成脚本 选择特定数据库对象 检查 表
  • 具有 Surface 输入的 MediaCodec:生成分块输出

    我正在尝试通过 CameraPreview 数据生成短的连续 mp4 文件MediaCodec createInputSurface 然而 重新创建MediaCodec与其关联的 Surface 需要停止相机以允许再次调用mCamera s
  • XmlSerializer 不使用 sgen 创建的 XmlSerializers.dll

    在我的 Visual Studio 2010 项目中 我使用以下 Post Build 事件命令行来使用 sgen 创建 XmlSerializers dll 构建后事件 ProgramFiles Microsoft SDKs Window
  • Google+ 照片 api [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有 Google 照片 gdata API 吗 我正在使用谷歌 picasa API但 picasa 对照片有 1 GB 的限制 我想使用我的脚本上
  • 使用 PHP,如何访问从 Stripe API 返回的受保护的 _values 属性?

    我正在整合条纹API与 CMS 我需要归还 values查询中的属性作为数组 以便数据可用作 CMS 中的模板变量 但它始终受到保护 我一直在使用反思类获取数据 但现在我正在使用 Stripe Stripe Plan all 我必须多次调用
  • Pip 选择了错误的路径

    我使用的是 Windows 10 我摆脱了 python 3 8 并安装了 3 7 作为系统上唯一的 python 版本 当尝试使用 pip 安装库时 我现在收到错误 Fatal error in launcher Unable to cr
  • Task.WaitAll() 未按预期工作

    我正在尝试弄清楚如何使用 Task 类 过去我一直使用常规的 Thread 类 但我正在尝试掌握所有异步编程 作为示例 我创建了一个包含所有代码的主 Winforms 应用程序 我的问题的相关代码是 Relevant delegates p
  • 按钮不透明度/透明度

    主要 xml
  • 在 Vuejs 中将数据从子级传递到父级(有那么复杂吗?)

    我读过 vuejs 从子组件更新父数据 https forum vuejs org t passing data back to parent 1201 2 概念是相同的 我需要将数据对象从子级传递给父级 我用过 emit将数据传递给父组件