vue.js - 使用 VueJS 将数据从 child 发送到 parent

标签 vue.js

我正在使用 Django 和 VueJs 开发一个小项目。一切都很好,我只是想知道如何在发出 Axios 请求后将数据从我的组件 (Modal) 发送到另一个组件?这是我的代码:

注意:请阅读我的代码注释以了解我想要做什么。

child :AddContact.vue

methods: {
    post(){
        getAPI.post('api/contact/post/', this.form).then((response) => {
            // here I want to send response data to Contact.vue
        }).catch((error) => {

        })
    }
}

父级:Contact.vue(我想接收数据的地方)

<template>
   <addContactModal></addContactModal>
</template>

<script>
    import addContactModal from "../modals/contact/addContact.vue";
    import { getAPI } from '../../../vue/src/axios-api';

    export default {
        name: 'Contact',
        components: {
            addContactModal: addContactModal
        }
    };
</script>

最佳答案

您可以 emit来自子组件的信号:

getAPI.post('api/contact/post/', this.form).then((response) => {
    this.$emit('loaded', response) // emit your signal
}).catch((error) => {
    // handle error
})

然后将父级的方法绑定(bind)到信号。请注意:

  • 信号名称($emit 的第一个参数)和 @ 指令必须匹配(@ 是短的对于 v-on)
  • 传递给$emit的第二个参数将成为绑定(bind)函数的第一个参数
<template>
   <addContactModal @loaded="doSomethingWithResp"></addContactModal>
</template>

... 

<script>
    import addContactModal from "../modals/contact/addContact.vue";
    import { getAPI } from '../../../vue/src/axios-api';

    export default {
        name: 'Contact',
        components: {
            addContactModal: addContactModal
        },
        methods: {
            doSomethingWithResp: function (response) {
                console.log(response)
            }
        }
    };
</script>

关于vue.js - 使用 VueJS 将数据从 child 发送到 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66738491/

相关文章:

javascript - vue/vuetify 动态修改 v-text-field 属性

javascript - 如何将商店中对象的动态属性用作 v 模型?

javascript - 使用 vue.js 在 Canvas 上绘图

jquery - vue中如何选择codemirror实例

javascript - Vue.js 命名为 javascript 钩子(Hook)

javascript - Vue 3 组合 API 数据不是 react 性的

javascript - 使用 Cypress 无法单击 Web 应用程序上的“开始”按钮

javascript - 在 Vuex 突变中使用 `Vue.nextTick` 是否违反惯例?它会破坏什么东西吗?

javascript - 在Vuejs3中如何让sticky header组件在与其他组件相交时改变背景颜色?

vue.js - Vue 无效 CSS - 需要 1 个选择器或 at 规则,