在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>
好了,以上就是父组件获取子组件的值并且操作子组件的方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。