Vue父组件获取子组件中的变量

在vue项目日常开发中,难免要把功能性组件抽离出来,这样结构就会出现父子组价,兄弟组件等,但是这样就会涉及到不同组件需要互相使用其中的值得问题。

之前有说过通过ref来让父组件操作子组件,并且传值,那么我们今天来详细看看。

案例一:点击父组件的按钮,操作子组件显示

注:可以通过获取id/class来操作,这里我就不介绍这种方法了,至于jquery的话,在vue中还是慎用。

介绍:这里通过给子组件绑定ref属性,引号命名自定义,然后父组件通过 this.$refs.名字 就可以操作子组件的元素,以改变它的样式等。

<template>
    <div class="DbSource-box">
        <el-button type="primary" icon="" class="addBtn" @click="addDbSource()">新增</el-button>
        <db-source-add ref="addAlert" v-on:init="init"></db-source-add>
    </div>
</template>

<script>
    import DbSourceAdd from "../components/DbSourceManager/DbSourceAdd";
    export default {
        name: "DbSourceManager",
        components: {DbSourceAdd},
        methods: {
            // 点击新增按钮,弹出新增数据源的弹框
            addDbSource(){
                this.$refs.addAlert.$el.style.display = "block";
            },
        }
    }
</script>

案列二:获取子组件data中的变量

介绍:

父组件:

这里通过给子组件绑定ref属性,引号中的命名自定义,然后父组件通过 this.$refs.名字.变量名 就可以获得子组件中的值

<template>
    <div class="DbSource-box">
        <el-button type="primary" icon="" class="selectBtn" @click="deleteSelectDbSource()">批量删除</el-button>
        <db-source-table ref="getSelectData" :Data="Data" v-on:init="init"></db-source-table>
    </div>
</template>

<script>
    import DbSourceTable from "../components/DbSourceManager/DbSourceTable";
    export default {
        name: "DbSourceManager",
        components: {DbSourceTable},
        methods: {
            // 删除选中的数据源(批量删除)
            deleteSelectDbSource(){
                console.log(this.$refs.getSelectData.multipleSelection)
            },
        }
    }
</script>

子组件:

<template>
    <div class="table-box">
        
    </div>
</template>

<script>
    export default {
        name: "DbSourceTable",
        props:["Data"],
        data(){
            return {
                multipleSelection:[],
                pagesize: 3,
                currpage: 1,
                currId:""
            }
        }
</script>

好了,以上就是父组件获取子组件的值并且操作子组件的方法。

如有问题,请指出,接受批评。

个人微信公众号:

Vue组件获取组件的数据有多种方式。一种常用的方式是通过props属性。组件可以通过在组件标签上自定义一个属性,并将需要传递的数据作为属性值传递给组件组件则可以通过props属性以数组的形式接收组件传递的数据。这样组件就能够获取组件的数据了。 另一种方式是通过事件来获取组件的数据。组件可以在自身标签上自定义一个事件,并将需要传递的数据通过$emit方法进行传递。组件可以在自身内部定义对应的函数来接收组件传递的数据。通过这种方式,组件就能够获取组件的数据了。 还有一种方式是使用插槽(slot)。在组件的template标签使用slot-scope来获取组件的数据,并通过指定的作用域变量获取组件传递的数据。通过这种方式,组件可以根据组件的数据进行相应的处理。 总结起来,Vue组件可以通过props属性、事件和插槽来获取组件的数据。这些方法都有各自的应用场景,可以根据具体情况选择使用。<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/m0_60067558/article/details/120972288)[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_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏丶毛病

很庆幸此文有幸对您有帮助 ~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值