#2.(已弃用)调用者作用域可以访问混入中的变量
Mixins 会将它们的变量推送到调用者作用域,但前提是该变量未在本地定义。
#ns {
.mixin-1() {
@a: one;
@b: two;
}
}
.rule {
@b: three;
#ns.mixin-1();
prop-1: @a;
prop-2: @b;
}
/* OUTPUTS:
.rule {
prop-1: one;
prop-2: three;
}
*/
这是违反直觉的,因为:
- 调用者作用域中更高的变量可以被覆盖。
- 这也不是典型的语言行为。
- 它不同于分离规则集的行为。
此外,随着地图的引入,你可以直接检索变量值(和混合)。
首选方法:
#ns {
.mixin-1() {
@a: one;
@b: two;
}
}
.rule {
@returns: #ns.mixin-1();
prop-1: @returns[@a];
prop-2: @returns[@b];
}
/* OUTPUTS:
.rule {
prop-1: one;
prop-2: two;
}
*/