❝唯独在努力这一点上
我不想输给他
❞
前言
一次跟小马去咖啡店,一位漂亮的女服务员走过来
- 你好,请问两位需要喝点什么?
- —杯卡布奇诺
美女转过身来问我
- 帅哥,你需要喝点什么?
- 可以续杯吗?
- 可以
- 那我不点了,我喝他的续杯就行了
- 。。。
被看穿了吗?╮(╯▽╰)╭
没戏咯,下次得把小心思藏好一点
论小心思,不得不说说今天的下拉菜单
层层下拉,简直是深不见底!!
1 Dropdown
分割线
世界上最远的距离不是我在天涯,你在海角
世界上最远的距离不是我在农村,你在城市
世界上最远的距离不是我在加班,你在家里
世界上最远的距离莫过于我就在你身边,而你却在玩手机,虽然只是一线之隔,却仿佛咫尺天涯
代码片段
.el-dropdown .el-dropdown__caret-button:before {
content: "";
position: absolute;
display: block;
width: 1px;
top: 5px;
bottom: 5px;
left: 0;
background: hsla(0,0%,100%,.5);
}
技巧解析
❝分割线,怎么分割呢?
❞
1.常规方法,边框border
2.添加div,宽度1px
3.before,height + margin
其实,高度不一定非得用height,使用定位position也是可以的
top为0,贴近上边界,bottom为0,贴近下边界,这样就有了父级100%的高度
2 DropdownItem
事件传递
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link">
下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="a">黄金糕</el-dropdown-item>
<el-dropdown-item command="b">狮子头</el-dropdown-item>
<el-dropdown-item command="c">螺蛳粉</el-dropdown-item>
<el-dropdown-item command="d" disabled>双皮奶</el-dropdown-item>
<el-dropdown-item command="e" divided>蚵仔煎</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
// ElDropdownItem
methods: {
handleClick(e) {
this.dispatch('ElDropdown', 'menu-item-click', [this.command, this]);
}
}
// ElDropdown
handleMenuItemClick(command, instance) {
if (this.hideOnClick) {
this.visible = false;
}
this.$emit('command', command, instance);
},
技巧解析
❝❞
@command="handleCommand"
, 想到了啥?
子级的事件,让父级出发,这不正是事件代理么!
确实,事件代理就是这么玩的
然并卵,仔细看,并不是
子级的handleClick
事件,派发给父级,父级再$emit
一个command
事件,虽然不是事件代理,却不必每个子级都触发@command
一群人做的事,一个人就能搞定!
3 DropdownMenu
watch监听
你瞅啥?
还看
还看
嘤嘤嘤
watch: {
visible(val) {
this.broadcast('ElDropdownMenu', 'visible', val);
this.$emit('visible-change', val);
}
}
watch: {
'dropdown.placement': {
immediate: true,
handler(val) {
this.currentPlacement = val;
}
}
}
技巧解析
❝好看吗,O(∩_∩)O哈哈~
❞
提前先瞅一眼,immediate: true
要是情况不对,赶紧跑,this.$emit('visible-change', val)
所以,不要一直盯着看,watch还可以提前看一眼,也可以边看边做出反应
Vue中watch使用 传送门
「我一直禁不住地想要寻找」
「你在某处的笑容」
参考链接
往期回顾
- 跟随Element学习Vue小技巧(1)——Layout
- 跟随Element学习Vue小技巧(2)——Container
- 跟随Element学习Vue小技巧(7)——Button
- 跟随Element学习Vue小技巧(8)——Link
- 跟随Element学习Vue小技巧(9)——Radio
- 跟随Element学习Vue小技巧(10)——Checkbox
- 跟随Element学习Vue小技巧(11)——Input
- 跟随Element学习Vue小技巧(12)——InputNumber
- 跟随Element学习Vue小技巧(13)——Select
- 跟随Element学习Vue小技巧(14)——Cascader
- 跟随Element学习Vue小技巧(15)——Switch
- 跟随Element学习Vue小技巧(16)——Slider
- 跟随Element学习Vue小技巧(17)——TimePicker
- 跟随Element学习Vue小技巧(18)——DatePicker
- 跟随Element学习Vue小技巧(20)——Upload
- 跟随Element学习Vue小技巧(21)——Rate
- 跟随Element学习Vue小技巧(23)——Transfer
- 跟随Element学习Vue小技巧(24)——Form
- 跟随Element学习Vue小技巧(25)——Table
- 跟随Element学习Vue小技巧(26)——Tag
- 跟随Element学习Vue小技巧(27)——Progress
- 跟随Element学习Vue小技巧(28)——Tree
- 跟随Element学习Vue小技巧(29)——Pagination
- 跟随Element学习Vue小技巧(31)——Avatar
- 跟随Element学习Vue小技巧(33)——Loading
- 跟随Element学习Vue小技巧(34)——Message
- 跟随Element学习Vue小技巧(36)——Notification
- 跟随Element学习Vue小技巧(37)——Menu
- 跟随Element学习Vue小技巧(38)——Tabs
- 跟随Element学习Vue小技巧(39)——Breadcrumb