map getter是一个不必要的实体吗



有这样的SCSS代码:

$font-weights: (
"font-weight-thin": 100,
"font-weight-light": 300,
"font-weight-regular": 400,
"font-weight-medium": 500,
"font-weight-bold": 700,
"font-weight-black": 900,
);
@function font-weight($font-weight-style){
@return map-get($font-weights, $font-weight-style);
}

然后我们可以以以下函数调用的形式使用它:

.header_top_navigation{
font-weight: font-weight(font-weight-regular);
}

问题:
与使用普通SCSS变量相比,这种方法有什么优势(以及它能解决哪些任务(
还是它只是一个等价但更杂乱的替代方案?

这可能只是额外的代码,它对错误敏感:

  • 您需要为每个映射编写一个特定的函数
  • 当您更改地图名称时,还需要更改您的功能

创建函数的一个有效原因可能是您不喜欢map get的语法,并希望创建一个简写,使其可读性更强。你可以这样做:

function mg($map, $key) {
@return map-get($map, $key);
}

你可以像这样在每张地图上使用它:

.header_top_navigation{
font-weight: mg($font-weights, "font-weight-regular");
}

相关内容

最新更新