VUE组件的封装--父组件向子组件传值 调用父组件的方法改变子组件data&调用子组件方法

Posted yujiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VUE组件的封装--父组件向子组件传值 调用父组件的方法改变子组件data&调用子组件方法相关的知识,希望对你有一定的参考价值。

1.调用

import info from \'./priceDetail.vue\'
components: { Treeselect, info },
<info></info>

2.父组件向子组件传值

v-bind:name=""

eg:

父:

<info v-bind:type="type" v-bind:row="row"></info>
handleClick(row) {
       console.log(row)
       this.dialogTableVisible = true
       this.row=row//传递的row
     },

子:

props: {
      type: {
        type: String,
        required: true,
      },
      row:{
        type:Object,
        required:true
      }
    },
 <el-descriptions title="详细信息" v-if="type == \'bw\'">
created() {
      console.log(this.type)
      console.log(\'row\',this.row)
    },

3.note:

子组件接受的父组件的值分为——引用类型和普通类型两种,
普通类型:字符串(String)、数字(Number)、布尔值(Boolean)、空(Null)
引用类型:数组(Array)、对象(Object)

4调用父组件的方法 改变子组件中data的值&调用子组件方法

起初我是父组件通过props传值,但是发现只有组件第一次加载时才能传值,通过事件改变的父组件值并不会再通过过props传递,也就是说props只有加载组件时才会工作,并不会根据值改变动态操作
后面,我是通过操作dom的方法,this.$refs.children这样直接操作子组件

eg:
 <el-button
                slot="append"
                icon="el-icon-search"
                style="background: #1890ff"
                @click="tj"
              >
                搜索
              </el-button>
  <bw v-show="condition == \'bw\'" ref="bw"></bw>
 tj() {
        if (this.condition == \'bw\') {
          console.log(this.input2)
          console.log(this.select)
          console.log(this.$refs.bw)
          if (this.select == \'3\') {
            // 父组件改变子组件的data
            this.$refs.bw.formInline.zhaobdw = this.input2
          } else if (this.select == \'4\') {
            this.$refs.bw.formInline.zhongbdw = this.input2
          }
          // 父组件调用子组件方法
          this.$refs.bw.onSubmit()
        } else if (this.condition == \'bdw\') {
          console.log(this.input2)
          console.log(this.select)
          this.$refs.bdw.onSubmit()
        } else {
          console.log(this.input3)
          console.log(this.select1)
          this.$refs.sc.onSubmit()
        }
      }

以上是关于VUE组件的封装--父组件向子组件传值 调用父组件的方法改变子组件data&调用子组件方法的主要内容,如果未能解决你的问题,请参考以下文章

Vue-组件嵌套之 父组件向子组件传值

Vue 父组件向子组件传值,传方法,传父组件整体

vue3实现父组件向子组件传值并监听props改变触发事件

vue 简单实现父组件向子组件传值,简单来说就是子组件肆意妄为的调用父组件里后台返回的值

vue父组件向子组件传值

Vue_(组件通讯)父组件向子组件传值