将变量传递给 Vue.js 中的子组件

Posted

技术标签:

【中文标题】将变量传递给 Vue.js 中的子组件【英文标题】:Passing a variable to child component in Vue.js 【发布时间】:2019-05-30 01:00:00 【问题描述】:

你好再次堆栈溢出。我想将一个变量传递给 Vue 中的子组件。

我已经做了一些搜索并尝试了以下,基于这里***

我也试过用created:方法代替mounted:

有什么想法吗?

这是我的父组件

订阅.vue

<template>
    <div>
        <h1>Subscribe with Stripe</h1>
        <StripeSubscriptions :subscription="subscriptionType"></StripeSubscriptions>
    </div>
</template>

<script>
    import StripeSubscriptions from '../../includes/StripeSubscriptions.vue';

    export default 
        data()
            return 
                subscriptionType: "Monthly"
            ;
        ,
        components: 
            StripeSubscriptions
        
    
</script>

子组件

StripeSubscribe.vue

<template>
    <div>
        <div ref="card"></div>
        <button v-on:click="purchase">Purchase</button>
    </div>

</template>

<script>
    export default 
        props: ['subscription'],
        mounted: function () 
            this.logThis();
        ,
        methods: 
            logThis: function ()
                console.log(this.subscription);
            ,
        
    ;
</script>

以上控制台输出为:here: undefined

【问题讨论】:

【参考方案1】:

您似乎对此有错误的引用。在 javascript 上下文中,this 指的是直接上下文,但 Vue 道具与类/组件的上下文相关联。

为防止这种情况,请将this 的引用存储到另一个变量,或使用箭头函数

methods: 
            logThis: () => 
                console.log(this.subscription);
            ,
        

【讨论】:

以上是关于将变量传递给 Vue.js 中的子组件的主要内容,如果未能解决你的问题,请参考以下文章

如何将点击卡片的 id 和卡片内容传递给 vue.js 中的另一个组件?

将父母道具传递给Vue,js中的插槽

如何将数据传递给 vue.js 中的子组件

将 PHP 变量传递给 vue.js vue 组件

将字符串而不是变量传递给刀片文件中的子 Livewire 组件

如何将变量从 axios 获取请求传递给 vuejs 中的子组件?