要判断当前处于哪一条线,是很多前端都会遇到的问题,判断的方式也是千奇百怪的。但是每个人都想写出简洁的代码这是毋庸置疑的,首先我们可以使用switch来判断hostName,但是这样写出来的代码结构性太严重,比较笨重,所以我们选择了用对象来订制我们的策略集,再建一个工具选择的行为函数,这样写出来的代码,后续要改动的话也是极其方便的。
案例
interface HostMap {
[propName: string]: string
}
const hostMap: HostMap = {
'local.com': 'http://local.com:8099/#/',
'dev-cmicloud.com': 'https://dev-cmicloud.com/console/#/',
'test-cmicloud.com': 'https://test-cmicloud.com/console/#/',
'mi.com': 'https://mi.com/console/#/'
}
// 策略模式
let hostName = window.location.hostname
const getUrl = (hostName: string) => {
return hostMap[hostName]
}