• v-on="$listeners"和v-bind="$attrs"


    常用于多层级组件之间的通信(>2层)

    主要是在中间层组件使用:(注意中间层别接收需要向底层传递的参数)

    高层级向底层级传值:(v-bind="$attrs")

    底层级向高层级调方法:(v-on="$listeners")

    <template>
      <div>
        <div>{{ title }}</div>
        <son v-bind="$attrs" v-on="$listeners"></son>
      </div>
    </template>
    
    <script>
    import Son from '@/components/son'
    
    export default {
      components: {
        Son
      },
      data() {
        return {
          title: '我是me'
        }
      }
    }
    </script>

    高层级还是像普通的组件传值一样,:xxx="xxx" ,接收参数还是像emit一样。@xxx="xxx"

    <template>
      <div>
        <div @click="clean">{{ title }}</div>
        <div @click="clean">{{sonName}}</div>
        <me :name="name" @cliName="cliName"></me>
      </div>
    </template>
    
    <script>
    import Me from '@/components/me'
    
    export default {
      components: {
        Me
      },
      data() {
        return {
          title: '我是father',
          name: '我是从father传值的数据',
          sonName: ''
        }
      },
      methods: {
        cliName(e) {
          this.sonName = e
        },
        clean() {
          this.sonName = ''
        }
      }
    }
    </script>

    底层接收参数props和向高层传递参数emit:

    <template>
      <div>
        <div>{{ title }}</div>
        <div @click="cli">{{ name }}</div>
      </div>
    </template>
    
    <script>
    export default {
      props: {
        name: String
      },
      data() {
        return {
          title: '我是son'
        }
      },
      methods: {
        cli() {
          this.$emit('cliName', '我是从son传值的数据')
        }
      }
    }
    </script>
  • 相关阅读:
    Vue请求参数转换(qs的使用---对象序列化)
    Vue中使用async/await解决异步请求问题
    数据结构:set
    数据结构:map (不是数组的map方法)
    数组方法-reduce 和 ES6扩展运算符
    数据分析相关
    Hadoop委任和解除节点
    Oozie调度Sqoop报错
    Oozie调度Sqoop的两种方式
    MySql数据表直接到Hive表操作
  • 原文地址:https://www.cnblogs.com/ssszjh/p/14720950.html
Copyright © 2020-2023  润新知