zoukankan      html  css  js  c++  java
  • vue 父子组件间通讯问题处理

    props 方法

    父组件传参

    <import-package-dialog
          v-if="dialogs.importPackage"
          dialoagName="importPackage"
          @closeDialog="onCloseDialog"
        >

    子组件接收

      props: {
        dialoagName: {
          type: String,
          default: ""
        },
        selectData: {
          type: Array,
          default() {
            return []
          }
        }
      },

    子组件传父组件可通 $emit 方法传参

    this.$emit('closeDialog', {
            name: this.dialoagName
          });

    若想父子组件数据同步更新,可通过对象的形式,此处不做叙述,我给大家介绍另一种方法 sync,只需要在父组件参数后面加上.sync即可。

     <health-check
                width="700px"
                v-if="config.attrNbr === 'HEALTH_CHECK' && isHealthCheck"
                ref="HEALTH_CHECK"
                label-width="140px"
                :containerPortList="containerPortList"
                :healthData.sync="config.healthCheck"
              />

    子组件通过 update 方法对父组件数据进行更新

    this.$emit('update:healthData',xxx)
    

    父子组件数据同步更新也可以通过 v-model 方法来完成,父组件通过 v-model来绑定一个你需要同步更新的值

    子组件

    props: {
            // 此处必须是value才行
            value: {
                type: [Number, String],
                default: ''
            },
        },
        // 通过监听改变
        watch: {
            value(val) {
           // 实现方法 this.$emit('input', val) } },

      

    当然也可以通vuex进行处理,须知页面刷新是会把vuex里的数据清掉的。

  • 相关阅读:
    使用Xtrabackup 备份mysql数据库
    Myeclipse总结
    intellij idea问题及技巧
    Tomcat相关配置
    Spark常用算子总结
    前端开发经验
    最近用到的SQL语句
    subline text使用心得
    天龙八部谁是主角?(MR词频统计)
    elasticsearch CURL命令
  • 原文地址:https://www.cnblogs.com/fczbk/p/12395215.html
Copyright © 2011-2022 走看看