最新前端利用策略模式优化if else_前端在methods如何写if else,web前端开发在线培训

自学几个月前端,为什么感觉什么都没学到??


这种现象在很多的初学者和自学前端的同学中是比较的常见的。

因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。

最重要的是,在学习的过程中,不知道每个部分该学哪些知识点,学到什么程度才算好,学了能做什么。

很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。

这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。

但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。

所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。


这些校验规则可以抽取成策略对象:



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)

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值