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路由参数的传递与获取方式详细介绍

vue学习记录之动态组件浅析

vue如何实现列表固定列滚动

vue如何实现伸缩菜单功能

vue项目中canvas如何实现截图功能