在使用小程序组件的时候,有一些开发实现的问题需要被注意。
为革吉等地区用户提供了全套网页设计制作服务,及革吉网站建设行业解决方案。主营业务为成都做网站、成都网站建设、革吉网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
为了处理移动端的 1px 问题,默认类型的 button 组件在设置边框样式时使用了伪类。
场景:需要设置 button 边框样式覆盖默认样式。
解决方法:开发者可以通过伪类设置样式来覆盖默认的边框样式。
代码示例
按钮 default
.btn {
position: absolute;
top: 50px;
}
.btn:after {
border: 1px solid #f00;
}
label 组件使用 for 属性找到对应的 ID(必须写 for),当点击时,就会触发对应的控件。目前可以绑定的控件有:button、checkbox、radio、switch 。
场景:button/checkbox/radio/switch 组件较小的时候,可点击区域变小,导致用户体验不好。
解决方法:使用 label 组件包裹,通过控制 label 组件的宽高,可以扩大控制热区。
代码示例
智能小程序
.label {
display: block;
padding: .2rem;
}
A:这是因为为了提供更加丰富的功能和更接近于原生的体验,input 和 textarea 是通过原生组件的形式实现的,关于原生组件具体可以参考原生组件说明,而 label 是非原生组件,因此暂时不支持绑定 input 组件和 textarea 组件。
switch 组件默认大小为 38px * 23px ,但不能通过设置 width 和 height 进行调整。
场景:开发者想调整 switch 组件的大小,直接设置 width 和 height 没有效果。
解决方法:可以通过 CSS scale 缩放进行设置。
代码示例
swan-switch {
/* 通过缩放调整大小 */
transform: scale(.5);
/* 图标宽度并不会改变 */
/* width: 1.1rem; */
}
textarea 的 blur 事件会晚于页面上的 tap 事件。
场景:有一个表单(textarea + button),获取表单内容用的是 bindblur 事件。因为 textarea 的 blur 事件会晚于页面上的 tap 事件,所以输入内容后立即点击 button 是不能获得数据的。
解决方法:可以使用 form 的 bindsubmit 。
代码示例
bindFormsubmit(e) {
console.log(e.detail.value.textarea)
}
合理使用校验逻辑对表单的填写更友好。
场景:填写 form 表单时做校验。
解决方法:先初始化表单校验规则,由 bindblur 事件触发自定义校验方法,进行校验。
代码示例
// 1. 在 data 里初始化表单项数据,并定义校验的正则表达式,例如校验电话:
// (value: 对应的输入值; rulse:校验规则; errorInfo: 校验失败的提示信息;)
model: {
phone: {
value: '',
rulse: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
errorInfo: {
errFlag: false,
errContent: '请输入有效的手机号'
}
}
}
bindBlur(e) {
let value = e.detail.value;
let id = e.currentTarget.dataset.id;
let rulse = this.data.model[id].rulse;
this.validate(rulse, value, id);
},
// 3. 写一个自定义校验方法,验证正则
validate(rulse, value, id) {
let tes = new RegExp(rulse)
// 校验通过
// ...
// 校验未通过,显示错误信息
// ...
}
智能小程序,还提供了许多组合能力示例,例如查询类服务表单模板、办理类服务(单流程)表单模板、办理类服务(多流程)表单模板。模板内包含的组件丰富,覆盖大多数查询类服务项场景,并且有完整的校验规则,示例和源代码请参考对应的组合能力示例模板。
分享标题:创新互联百度小程序教程:使用组件注意事项
文章URL:http://www.shufengxianlan.com/qtweb/news0/217950.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联