vue中子组件调用父组件的属性、方法

1、子组件调用父组件的方法

子组件里用$emit向父组件触发一个事件,父组件监听这个事件就行了

//父组件
<template>
    <div>
        <label>我是父组件</label>
        <child @fatherMethod="test"></child>
    </div>
</template>
<script>
import child from './components/child';
export default{
    components:{child},
    methods:{
        test(){
            console.info("test");
        }
    }
}
</script>
 
 
//子组件
<template>
    <div>
        <label>我是子组件</label>
        <button @click="btn_Click()">调用父组件方法</child>
    </div>
</template>
<script>
import child from './components/child';
export default{
    components:{child},
    methods:{
        btn_Click(){
            this.$emit('fatherMethod')}
    }
}
</script>

2、子组件获取父组件的属性

1.在父组件中定义需要传入的值,如userNmae

<template>
    <div>
        <label>我是父组件</label>
        <child :userNmae="name"></child>
    </div>
</template>
<script>
import child from './components/child';
export default{
    data(){
        return{
            name:"whz"
        }
    }
    components:{child}
}
</script>

2.在子组件中声明并使用变量

<template>
    <div>
        当前用户:
        <label>{{userName}}</label>
    </div>
</template>
<script>
    export default {
      name:'child',
      props:["userName"]
    }
<script>
Vue中,子组件可以通过不同的方式调用组件方法。其中,常见的方式有两种。 第一种方式是通过在子组件中使用`$emit`方法来触发组件中的方法。子组件可以通过`this.$emit('xxx')`来触发组件中的`xxx`方法。在组件中,需要在子组件标签上监听该事件,并绑定对应的方法名。例如,组件中的代码可以是: ```html <template> <div> <child @xxx="fatherMethod"></child> </div> </template> <script> import child from '~/components/dam/child'; export default { components: { child }, methods: { fatherMethod() { console.log('测试'); } } }; </script> ``` 第二种方式是通过将组件方法名传递给子组件,在子组件调用方法组件需要在子组件标签上使用冒号(`:`)来将方法名传递给子组件。在子组件中,可以直接使用`this.$parent.methodName`来调用组件中的方法。例如,组件中的代码可以是: ```html <template> <div> <child :fatherMethod="fatherMethod"></child> </div> </template> <script> import child from '~/components/dam/child'; export default { components: { child }, methods: { fatherMethod() { console.log('测试'); } } }; </script> ``` 以上是两种常见的在Vue中子组件调用组件方法的方式。根据具体的需求和场景,可以选择适合的方式来实现子组件组件之间的方法调用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue组件调用组件的所有方法](https://blog.csdn.net/chuziyan/article/details/122088972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值