Tag组件

Tag组件通常用来显示当前操作的多项内容,在我司系统中,选择多个不同站点下栏目的时候,就需要这种展示效果。但是并没有做到组件化,每次写相同的需求的时候都多了很多冗余的代码。

clipboard.png

最终实现的效果

https://jsfiddle.net/huang_ju...

扩展

对组件间的通信的理解

首先,先看一下Vue关于自定义事件的文档说明:自定义事件
这里,我们着重关注下这两句:

clipboard.png

为什么说,$on监听事件,但是不能用$on侦听子组件释放的事件呢?
我们看API文档中,对于$on, $emit的说明:

clipboard.png

vm.$emit, 以及触发的是当前实例上的事件!!!

所以,当我们在子组件中调用this.$emit的时候,被触发的事件也只能在子组件的实例中被监听到。如果这时候我们在父组件的实例中去监听this.$on(eventname),这样是肯定监听不到这个事件的。

而对于在模板中直接使用 @on:eventname = 'xxx',应该可以理解成是一种语法糖吧。不然要在父组件中去监听这个事件,就需要使用事件总线了吧。

Vue过渡效果中,key属性的应用

clipboard.png

可以在示例的代码中,删除模板中的key属性,看下这时删除操作的过渡效果。会发现每次都是把第一个元素给删除了,而不是当前点击的元素。解决办法就是上面这个key属性。

总结

Tag组件实现起来并不难,可以当作熟悉Vue的一个练手demo。
通过Tag组件

  • 加深了对$on, $emit使用的理解
  • 发现了过渡效果中,对于多个元素过渡的应用场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值