Vue 组件通信 $attrs、$listeners

API — Vue.js 官方文档介绍

个人认为这个传参方式用于二次封装一些ui库的组件非常好用,下面是代码示范。

子组件 -> tipsButton

<!--
 * @Author: WenBin
 * @Date: 2022-04-10 18:01:46
 * @LastEditTime: 2022-04-10 18:15:59
 * @LastEditors: your name
 * @Description: 
 * @FilePath: \vue-admin-template\src\components\tipsButton\index.vue
-->
<template>
  <a style="margin:10px" :title="title">
    <el-button v-bind="$attrs" v-on="$listeners">
      <slot></slot>
    </el-button>
  </a>
</template>

<script>
export default {
  // 组件名称
  name: 'tipsButton',
  // 组件参数 接收来自父组件的数据
  props: { 
      title:{
          type:String,
          default:""
      }
  },
  // 局部注册的组件
  components: {},
  // 组件状态值
  data() {
    return {}
  },
  // 计算属性
  computed: {},
  // 侦听器
  watch: {},
  // 组件方法
  methods: {},
  created() {
  },
  mounted() {
  },
}
</script> 

<style scoped lang="scss"> 
</style>

 父组件使用->

    <tips-button @click="myClick(row)" title="添加Spu" type="success" icon="el-icon-plus" size="mini"></tips-button>
              <tips-button title="修改Spu" type="warning" icon="el-icon-edit" size="mini"></tips-button>
              <tips-button title="查看当前spu全部sku列表" type="info" icon="el-icon-info" size="mini"></tips-button>
              <tips-button title="删除spu" type="danger" icon="el-icon-delete" size="mini"></tips-button>

//并且因为写了$listeners 所以可以直接在组件上写@click事件 就可以和el-button一样,不需要再去写自定义事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值