duration: duration,
onFinished: () => {
return this.$emit(“onFinished”);
},
onStarted: () => {
return this.$emit(“onStarted”);
},
…(useEasing ? { transition: TransitionPresets[transition].name } : {}),
}).value;
let num = this.formatNumber(n);
return num;
},
},
watch: {
getVal: {
deep: true,
immediate: true,
handler(newVal, oldVal) {
console.log(newVal);
if (this.autoplay) {
this.start();
}
},
},
// “endVal,startVal”: {
// deep: true,
// immediate: true,
// handler(newVal, oldVal) {
// console.log(newVal);
// ;
// if (this.autoplay) {
// this.start();
// }
// },
// },
startVal: {
deep: true,
immediate: true,
handler(newVal, oldVal) {
this.source = newVal;
},
},
},
mounted() {
this.autoplay && this.start();
},
methods: {
start() {
this.run();
this.source = this.endVal;
},
run() {
let { source, disabled, duration, useEasing, transition } = this;
let str1 = TransitionPresets[transition];
console.log(str1, useEasing);
this.outputValue = useTransition(source, {
disabled,
duration: duration,
onFinished: () => {
return this.$emit(“onFinished”);
},
onStarted: () => {
return this.$emit(“onStarted”);
},
…(useEasing ? { transition: TransitionPresets[transition].name } : {}),
}).value;
},
// 添加百分号 如果仅仅想给数字加百分号 使用这个就行了
formatNumber(num) {
if (!num && num !== 0) {
return “”;
}
// decimal 小数点 .
// decimals 几位小数 .xxx
// separator 分号 ,
const { decimals, decimal, separator, suffix, prefix } = this;
num = Number(num).toFixed(decimals);
num += “”;
const x = num.split(“.”);
let x1 = x[0];
const x2 = x.length > 1 ? decimal + x[1] : “”;
const rgx = /(\d+)(\d{3})/;
if (separator && !isNumber(separator)) {
while (rgx.test(x1)) {
x1 = x1.replace(rgx, “$1” + separator + “$2”);
}
}
let m = prefix + x1 + x2 + suffix;
return m;
},
},
};
src/utils/is.js
const toString = Object.prototype.toString;
export function is(val, type) {
return toString.call(val) === [object ${type}]
;
}
export function isDef(val) {
return typeof val !== “undefined”;
}
export function isUnDef(val) {
return !isDef(val);
}
export function isObject(val) {
return val !== null && is(val, “Object”);
}
export function isEmpty(val) {
if (isArray(val) || isString(val)) {
return val.length === 0;
}
if (val instanceof Map || val instanceof Set) {
return val.size === 0;
}
if (isObject(val)) {
return Object.keys(val).length === 0;
}
return false;
}
export function isDate(val) {
return is(val, “Date”);
}
export function isNull(val) {
return val === null;
}
export function isNullAndUnDef(val) {
return isUnDef(val) && isNull(val);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
前端资料汇总
我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。
首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。
更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-CLMXfNky-1712718106910)]