更新记录
1.0.1(2021-03-11) 下载此版本
修复某些情况下,提交失败后按钮状态没重置的问题。
1.0.0(2021-02-04) 下载此版本
发布1.0.0版
平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
app-vue | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | × | × | √ | × | √ | √ | √ |
动效状态按钮(ls-state-button)
带有提交动画效果的按钮,支持 H5
vue
app
说明
通常用于表单提交的提交按钮,它带有提交中以及提交成功的状态动画,既可以给用户一个友好的提交等待提示,又可以防止用户重复点击。
用法示例
<ls-state-button ref="button" @submit="handleSubmit" />
import lsStateButton from '@/components/ls-state-button/ls-state-button.vue';
export default {
components: {
lsStateButton
},
methods: {
handleSubmit() {
// 模拟接口请求
setTimeout(() => {
// 如果接口调用成功
this.$refs.button.success(() => {
// 这里写提交成功后的代码逻辑
console.log('提交成功');
});
// 如果接口调用失败
// this.$refs.button.fail('提交失败');
}, 1600);
}
}
}
组件参数
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
color | String |
#19cc95 | 按钮主题颜色 |
font-color | String |
#ffffff | 文字颜色 |
shadow | Boolean |
true | 是否显示按钮阴影 |
text | String |
提交 | 按钮文字 |
plain | Boolean |
false | 结果符号是否镂空 |
submit | Function |
按钮点击后的回调 |
组件方法
方法名 | 说明 | 方法参数 | 注 |
---|---|---|---|
init() | 初始化按钮状态 | 无 | 此方法会将按钮初始化至点击前的状态 |
success(callback) | 提交成功 | Function |
此方法会将按钮状态置为成功,此方法接收一个回调方法,具体用法请看下方success方法参数说明 |
fail(toast) | 提交失败 | String |
此方法会将按钮状态置为失败,此方法接收一个String 类型的参数,如果不为空,失败时会一并弹出指定的toast提示 |
success方法参数说明
success方法接收一个回调方法,回调方法中执行你提交成功后的代码逻辑(写在这里的原因是可以保证按钮的成功动画可以充分执行完毕)。 例如如下场景:表单提交后页面跳转到列表页,
错误的使用方法: Bad !
handleSubmit() {
// 模拟接口请求
setTimeout(() => {
this.$refs.button.success();
// 成功后跳转页面
// 执行效果: 提交成功动画没有执行完毕,页面就已经跳走了
uni.navigateTo({
url: 'list'
})
}, 1600);
}
正确的使用方法:Good !
handleSubmit() {
// 模拟接口请求
setTimeout(() => {
this.$refs.button.success(() => {
// 成功后跳转页面
// 执行效果:提交成功动画执行完毕,页面跳转
uni.navigateTo({
url: 'list'
})
});
}, 1600);
}
鸣谢
组件示例项目中,按钮的4种颜色出自高颜值css组件库ColorUI,感谢ColorUI!