3
4

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 5 years have passed since last update.

第2回フロントエンド調査発表資料

Last updated at Posted at 2019-02-28

第2回フロントエンド調査発表
~TypeScript/Sass/webpack~

前回のおさらい

第1回フロントエンド調査発表はこちら

  1. JavaScriptの開発効率を向上したい
    • TypeScriptを使ってみよう
  2. CSSの保守性を向上したい
    • Sassを使ってみよう
    • BEMを取り入れてみよう
  3. ページ表示速度を改善しUXを向上したい
    • webpackを使ってみよう
    • SPAを取り入れてみよう

今回の話題

TypeScript、Sass、webpackを使ったサンプルで、どんな利点があるのか説明します

TypeScript/Sass/webpackの例

-前提知識-

  • TypeScriptやSassで書いたコードはブラウザで解釈できる言語に変換する必要がある
    • TypeScript➡JavaScript
    • Sass➡CSS
  • この変換のことをトランスパイルという

サンプルページ

75b5fe116d564c6994894c2341617214.gif

  • ボタンをクリックすると日付が表示されるページ

f87c4cbf718c94c7dfe3adf5d470c209.png

  • ボタンの装飾➡CSS
  • ボタンクリック時の動作➡JavaScript

0c72e730d493af65b009dcde920d7c1d.png

  • ボタンの装飾➡Sass
  • ボタンクリック時の動作➡TypeScript

Sass

まず、普通のCSSで書いた場合
f11fe7009d3bad5a3f0bc575137bc225.png

  • CSSと実際の構造が直観的に一致しない
  • 色などの共通な設定を管理しにくい

Sass(SCSS記法)で書くと構造がわかりやすい!
4f7862332cc17b5442576b9b4e8cf363.png

  • ネストしたブロックでCSSの構造が直観的で分かりやすい
  • 変数が使えるので色などを管理しやすい

TypeScript

4b550c3c560d9c192f212de0af682368.png

型を明示するのでどんな処理なのか把握しやすい

f135fe75f50c3739a76b1b906e16fd4e.png

  • コーディング中、トランスパイル時に構文エラーがわかる
    • JavaScriptはエラーに気付かず見逃すケースもある

webpack

e28756241eace1e9dfd6fa6ab723bb6f.png

  • JavaScriptやCSSをバンドルしjsを吐き出す
  • トランスパイル~バンドルの自動化もできる

さきほどのJavaScriptとCSSをwebpackでバンドル

787523bdbbdd4a64e169ee6acb5e0281.png

  • 不要な改行やスペースが削除されている

f2ec384668856412f9dec13258bb377d.png

  • 変数宣言・変数名が最適化されている

ちゃんと動く
07a93d84dc94128df0d593a1185526e3.png

まとめ:TypeScript/Sass/webpackを使えば・・・

  • 見やすいコード&静的チェックで開発効率向上
  • CSSの複雑化回避、保守性向上
  • webpackによる不要コード削除→バンドルで軽量化
3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?