Day13--自定义组件-封装自定义属性和click事件

本文介绍了如何通过自定义属性(props)增强Vue组件的通用性,例如设置背景颜色和圆角尺寸。同时,讨论了如何在组件中绑定自定义事件,包括使用`.native`修饰符和通过子父组件通信实现事件传递。示例展示了如何在父组件中监听并响应自定义组件的事件。
摘要由CSDN通过智能技术生成

提出问题:

 

当前我们search搜索框的背景颜色和圆角边框都是写死的,使用者没有办法修改器背景颜色和圆角尺寸。那么为了让这个组件更加通用性强一些

**************************************************************************************************************

1.通过自定义属性增强组件的通用性

1》通过 props 定义 bgcolor 和 radius 两个属性,并指定值类型和属性默认值:

我一直在想一个问题,为什么props里面可以放对象直到,我看到以前写的笔记。。。

 我的操作:

2》通过属性绑定的形式,为 .my-search-container 盒子和 .my-search-box 盒子动态绑定 style 属性:

我的操作:

1》在my-search组件中编写代码:

 

通用性的具体体现是:

 

**************************************************************************************************************

2.如何给自定义事件绑定事件 

我的操作:

1》在cate.vue组件中,我想给自定义组件my-search标签绑定一个@click事件。因为它处于cate组件里面,使用自定义组件my-search其实它的内部是不知道@click事件的。

①:

②:

③:

 

2》解决方法

第一种  .native

 

第二种  利用子父之间通信的手段,调用父组件中的方法事件

1>在my-search组件本身它还是知道@click事件,所以先为其绑定一个事件A(searchBoxHandler),然后用该事件A调用$emit触发父组件的事件(gotoSearch)

 

 2>效果图:

 

自定义`el-date-picker`选择旬的组件通常是在Vue.js框架下利用Element UI库的基础上进行扩展的。`el-date-picker`原生支持日、周、月和年等选择范围,但是如果你需要添加旬(十天为一旬,中国传统的农历周期单位)的选择功能,你需要做以下几个步骤: 1. **覆盖默认选项**: 在`props`中新增一个属性,如`type`,定义可以选择的范围,例如`types: ['day', 'week', 'month', 'decade', 'sennight']`,其中`sennight`表示旬。 ```javascript <template> <el-date-picker :type="selectedType" placeholder="选择旬" ...其他原生属性... /> </template> <script> export default { props: { selectedType: { type: String, default: 'day', validator: value => ['day', 'week', 'month', 'decade', 'sennight'].includes(value), }, }, ...其他组件逻辑... } </script> ``` 2. **自定义展示和选择**: 需要在日期显示和用户交互的部分处理旬的选择逻辑。这可能包括计算当前日期属于哪个月的第几个旬,以及更新日期选择时如何同步旬。 ```javascript methods: { handlePick(date) { if (this.selectedType === 'sennight') { // 根据日期计算并设置旬 this.currentSennight = ... // 这里需要你自己实现旬的计算 } ...其他日期操作... }, } ``` 3. **样式定制**: 如果想要自定义外观,可以修改` scopedStyle ` 或者通过CSS覆盖默认样式。 为了实现这个功能,你需要对Vue.js和Element UI有深入理解,并且能够编写相应的事件处理器和计算逻辑。同时,由于这不是Element UI的官方特性,可能需要自行维护这部分代码的兼容性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值