封装组件库(黑马从0到1封装组件)

封装组件库(黑马从0到1封装组件)

1.组件通信很重要,插槽,props校验,计算属性和监听属性,v-model语法糖,npm发布,了解组件实现原理

所有的组件在main.js中先导入再全局注册

1.button组件

需要的知识点:组件通讯,组件插值,props校验

使用type,属于通讯里面的父传子,App.vue使用了hm-button,把type的值传给封装的button组件,所以子组件button得去接收type属性。

click是子传父

给button注册了事件,点击button就会触发自己身上的click事件,给父组件派发了click事件,组组件给按钮注册了点击事件,这样就可以触发了

面试:

事件捕获:在封装dialog组件的时候点击遮罩层,可以让dialog隐藏,但是由于dialog本身也在遮罩层里面,所以需要用到@click.self : 事件只作用在元素本身,而不是其子元素

关于visible数据,不是dialog.vue自己的数据,而是App父组件prop传过来的数据,所以就需要父组件自己改值,

子组件里的 handleClose函数体是触发一个父组件自己的事件

即 handleClose()函数接受一个事件参数

//子组件
handleClose(){
   this.$emit('close',false)
  }
//父组件
close(value){

   this.visilbe = value

  }

子组件修改父组件的数据,

用 .sync修饰符,本来是父组件给子组件定义一个属性值,子组件想要修改就自定义一个事件,然后在函数里,

this.$emit(‘updata:money’, 200)

2.二次封装dialog组件库

因为好多地方都需要用到dialog,每次直接复制,代码繁琐,所以直接二次封装

其实就是控制visible,visible是子组件里面的值,在父组件点击按钮显示dialog

<el-button @click = "showDialog">点击按钮显示dialog<el-button>

methods:{
 showDialog(){
 this.$emit('change',vis)
 }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值