vue.js中包含3个变量的条件语句



是否有更好的方法在Vue.js中编写函数,如下面的条件语句,这适用于两个条件:

{
accessToken:
process.env.NODE_ENV == "production"
? "ZkIEqD1i8FVF628krYkPhAtt"
: "nroV5bOcaS2CHUosOINLJgtt",
cacheProvider: "memory"
}

但是,如果我需要添加第三个,我不确定如何做到这一点,这是行不通的:

{
accessToken:
process.env.NODE_ENV == 
"staging" ? "TY8ljH8FVyeYAfX0F7Qkfwttstaging"
: "production" ? "ZkIEqD1i8FVF628krYkPhAtt"
: "nroV5bOcaS2CHUosOINLJgtt",
cacheProvider: "memory"
}

您可以简单地添加第三个检查,我建议您添加一个开关案例,这样在您的案例中会更干净。

但是以上问题的答案是

accessToken:
process.env.NODE_ENV == "production"
? "ZkIEqD1i8FVF628krYkPhAtt"
: process.env.NODE_ENV == "staging"?"ZkIEqD1i8FVF628krYkPhAtt":"nroV5bOcaS2CHUosOINLJgtt":  "nroV5bOcaS2CHUosOINLJgtt",
cacheProvider: "memory"
}

只需创建一个辅助函数即可完成此工作。。。

function decideFor<K, T>(value: K, options: [condition: K, value: T][]): T | undefined {
return new Map(options).get(value);
}
const options = {
accessToken: decideFor(process.env.NODE_ENV, [
['staging', 'TY8ljH8FVyeYAfX0F7Qkfwttstaging'],
['production', 'ZkIEqD1i8FVF628krYkPhAtt'],
['developement', 'nroV5bOcaS2CHUosOINLJgtt'],
]) || 'invalid NODE_ENV',
// ...
};

在这种情况下,我更喜欢使用查找表将键映射到特定值的方法。

const defaultAccessToken = "nroV5bOcaS2CHUosOINLJgtt";
const envs = {
production: "ZkIEqD1i8FVF628krYkPhAtt",
staging: "TY8ljH8FVyeYAfX0F7Qkfwttstaging",
}
const y = {
accessToken: envs[process.env.NODE_ENV] || defaultAccessToken
}

最新更新