掘友等级
获得徽章 0
#每天一个知识点# elementUI的时间选择器,需要禁用后端返回的一个时间段,直接在data中定义disabledDate,取值接口的数据是不生效的,可以先定义一个字段,然后在methods中定义一个方法,return根据后端数据算出的禁用时间就可以使用了
eg:
data(){
deadlineDate: ""
pickerOptionsS: {
disabledDate: this.disabledDate
},
},
methods:{
disabledDate (time) {
const endDate = new Date(this.deadlineDate);
return time.getTime() < Date.now() || time.getTime() > endDate;
}
}
deadlineDate就可以在接口中获取数据
#每天一个知识点# 常用的正则校验
二代身份证校验正则
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/
二代身份证脱敏正则
String.replace(/^(.{2})(?:\d+)(.{2})$/,"$1************$2")
车牌号正则
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/
#每天一个知识点# elementUI使用message提示,重复触发会堆叠显示,如果需要一次只显示一条,可以再下次触发时,先使用close()方法关闭message,但是直接使用可能会因为实例指向问题不生效,可用如下方法处理:
if (this.m) {this.m.close()}
this.m = this.$message.error('关闭message!')
#每天一个知识点# 正则表达式包含零宽断言的话 , 在ios safairi会报错,尽量避免使用
常用零宽断言:(?!)(?<=)(?=)(? < !)
示例:
let reg = /ab?<=cd/
可改写成
let reg = new RegExp('ab(?<=cd)')
#每天一个知识点# 苹果浏览器中,低版本safari版本newDate()不支持以‘-’分割的日期(应该是safari15以上的版本无此问题),会返回invalid Date无法识别和转换,可以使用replace替换,直接将 - 替换为 /:new Date("yyyy-MM-dd HH:mm:ss").replace(/-/g, "/")即可
#每天一个知识点# element的tooltip和button一起用,button的disable属性也会tooltip的显示,如需同时使用,需要在tooltip和button之前加一层div即可
#每天一个知识点# vue使用echarts,需要在tooltip加点击事件的话,事件需要挂在window下,如果还需要使用当前vue实例,可以在mounted中把this存起来后,再写方法,如下
mounted () {
const _this = this
window.chartDetail = function (val) {
_this.$emit("refresh", val)
}
}
调用方法传值也需要需要用引号包起来 也就是onclick="chartDetail ('${params}')",否则会报错
#每天一个知识点# vue使用echats,在mounted调用后端数据后,接口返回后为什么还需要使用nextTick,才能成功更新数据,否则报错,mounted里面dom不是渲染完成了吗
#每天一个知识点# 按字节计算字符串长度,中文两字节
String.prototype.realLength = funtion () { return this.replace(/[^\x00-\xff]/g, "**").length }
后面字符串直接调用realLength就可以啦
#每天一个知识点# Vue中组件生命周期调用顺序:
组件的调用顺序都是先父后子,渲染完成的顺序是先子后父。
组件的销毁操作是先父后子,销毁完成的顺序是先子后父。
下一页