1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【SCSS】@useと@importの違い

Posted at

はじめに

見るわりに説明できなかったので、調べてまとめることにしました。

結論

どちらも分割されたファイルを読み込むときに使いますが、@use@importの使いづらい部分を補完したもの。現在@importは公式非推奨となっています。

具体例

style.scssというファイルに_variables.scssと_common.scssを読み込むと想定します。

① どこに何を定義したかの分かりやすさ

@importで書いたもの

style.scss
@import 'variables';
@import 'common';

.content {
  background: $color;
}
// $colorってどこで定義しとったっけ

@useで書いたもの

style.scss
@use 'variables';
@use 'common';

.content {
  background: variables.$color;
}
// variablesに$colorの記述がある

② グローバル汚染の防ぎやすさ

もし参照先がこの様に書かれていた場合……。

_variables.scss
$color: #fff;
_common.scss
$color: #000;

@importだと読み込み順が後のcommonに上書きされ、backgroundは#000が反映されます。@useは変数や関数等をカプセル化してくれるため、variablesにある#fffを持ってくることができます。

③ その他

他にもコンパイルにかかる時間が@importの方が長くなりやすい、CSSやスタイルシート名の重複リスク等で違いがあるようです。詳細については参考サイトをご覧ください。

おわりに

今更感なのですが、特に理由がなければ@useを使おう。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?