vue3+ts+pinia项目中的好写法
前端截取文字
String(enterpriseName).length < 8
? String(enterpriseName)
: String(enterpriseName).slice(0, 7) + '...'
多行省略号
@mixin ellipseText($lineNum: 2) {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: $lineNum;
/*! autoprefixer: ignore next */
-webkit-box-orient: vertical;
/* autoprefixer: on */
}
验证码倒计时的usehooks方法
// hooks,返回关键数据和关键事件。具体的ui,在实际的界面中实现。
//每秒减一,减到0,重置
export function useSms(validator: () => Promise<any>, requestFn: () => Promise<AxiosResponse>) {
type Timer = ReturnType<typeof setInterval>
const text = ref('获取验证码')
const disabled = ref(false)
let countdown = 60
let timer: Timer
const handleClick = () => {
validator()
.then(start)
.catch(() => {})
}
const start = () => {
requestFn()
.then(() => {
text.value = `剩余${countdown}s`
disabled.value = true
timer = setInterval(() => {
if (countdown < 1) {
reset()
} else {
--countdown
text.value = `剩余${countdown}s`
disabled.value = true
}
}, 1000)
})
.catch(() => {})
}
const reset = () => {
clearInterval(timer)
countdown = 60
text.value = '获取验证码'
disabled.value = false
}
return {
text,
disabled,
handleClick,
}
}
分类:
91vue.js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
2020-07-07 thinkphp5 返回json数据的方法---以及返回json为空的原因