自学几个月前端,为什么感觉什么都没学到??
这种现象在很多的初学者和自学前端的同学中是比较的常见的。
因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。
最重要的是,在学习的过程中,不知道每个部分该学哪些知识点,学到什么程度才算好,学了能做什么。
很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。
这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。
但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。
这些校验规则可以抽取成策略对象:
const strategies = {
register: function() {
// do register validation
},
login: function() {
// do login validation
},
forget: function() {
// do forget validation
}
}
然后在validateForm中使用策略对象:
methods: {
validateForm() {
const strategy = strategies[this.type]
strategy()
}
}
这样就替换掉了冗长的if else链。
### 策略模式的优点
* 去除复杂的if else逻辑
// 策略对象
const strategies = {
A() { //… },
B() { //… }
}
methods: {
// 直接使用策略对象,避免条件判断
// 如不使用则存在大量if else判断
doSomething() {
strategiesthis.type
}
}
* 扩展性好,新增策略容易
* 不同策略可以独立变化,不影响客户端
* 遵循开闭原则(新增策略时无需修改原代码)
// 新增策略
strategies.C = () => {
// 新策略C实现
}
// 客户端代码不需要修改,开闭原则
doSomething() {
strategiesthis.type
}
### 拓展
>
> 我们可以将策略对象抽取为模块,在运行时动态加载,实现运行时策略扩展。
>
>
> 也可以用Composition API进一步封装策略模块。
>
>
>
import registerValidator from ‘./registerValidator’
import loginValidator from ‘./loginValidator’
export default {
setup() {
return {
validators: {
register: registerValidator,
login: loginValidator
}
}
}
}
### React
* 介绍一下react
* React单项数据流
* react生命周期函数和react组件的生命周期
* react和Vue的原理,区别,亮点,作用
* reactJs的组件交流
* 有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢
* 项目里用到了react,为什么要选择react,react有哪些好处
* 怎么获取真正的dom
* 选择react的原因
* react的生命周期函数
* setState之后的流程
* react高阶组件知道吗?
* React的jsx,函数式编程
* react的组件是通过什么去判断是否刷新的
* 如何配置React-Router
* 路由的动态加载模块
* Redux中间件是什么东西,接受几个参数
* redux请求中间件如何处理并发
**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**
![](https://img-blog.csdnimg.cn/img_convert/9749ea39072fc4b7b27af6f3a4db5ab1.png)