0
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?

【React】Framer Motionのメリット・デメリットをまとめてみる

Posted at

70574400-9e6a-11e9-8708-22d4bf4c3322.png

最近はReactの勢いがすごいですね。
そんなReactでアニメーションを導入するとき、多くの開発者はFramer Motionの記事を目にすると思います。
今回はFramer Motionのメリット・デメリットを筆者の開発体験を元にまとめてみます。

メリット

シンプルで簡単

Framer Motionを使うと、ピュアなCSSよりも簡単にアニメーションを導入できます
例えば、以下のようなアニメーションも簡単に導入できます。

a.gif

export default function Example(props) {
    return (
        <div>
            <motion.div
                style={{
                    width: 150,
                    height: 150,
                    borderRadius: 30,
                    backgroundColor: "#fff",
                    cursor: "pointer",
                }}
                whileTap={{ rotate: 90, scale: 0.75 }}
            />
        </div>
    )
}

ピュアなCSSで実現しようとすると、keyframesを調整しないといけなかったりとなかなか大変だと思います、、
というように、tsxファイルにちょこっとコードを書くだけでアニメーションができるのでとても便利です。

幅広いオプションと柔軟性

Framer Motionには様々なオプションが用意されています。

例えば、

  • イージング
  • アニメーション期間
  • タップ時のアニメーション
  • ホバー時のアニメーション
  • 初回レンダー時アニメーションのオン/オフ
  • CSSでのアニメーション制御のオン/オフ

など多くのオプションがあり、自分好みにカスタマイズできます。

これらのオプションを使って、実際にアニメーションを作ってみました。

ソースコードはFramer Motion Examplesにてチェックしてみてください!
これ以外のアニメーションも紹介していますよ。

アニメーション付きページ遷移

この記事では詳しく説明しませんが、Framer MotionのAnimation Presenceを使えば、
アニメーション付きのページ遷移をラクに実装できます。
詳しいことに関しては、下記の記事などを参照してみてください。

デメリット

SSR非対応

Framer MotionはJavaScriptライブラリです。そのため、Framer MotionのアニメーションコンポーネントはReact Server Component内では使えません。(motion.divなど)
SSR非対応ということは、SEO面で不利になったり、Adsenseの審査が通らなかったりします
なぜなら、JavaScriptが読み込まれた後にレンダリングされるからです。
Next.jsはデフォルトがSSRなので、開発の際には注意が必要です。

パッケージサイズが大きい

Framer Motionのパッケージサイズは2.3MBもあります。
同じようなアニメーションライブラリである react-springは僅か55.1KBです。
ビルドサイズやパフォーマンスに少なからず影響することを知っておきましょう。
ただ、Framer MotionはLazy Loadingをサポートしているので
パフォーマンス改善の余地はあります。

結論

Framer Motionが適している状況としては、

  • Google Adsenseを導入しない
  • SEOをそこまで気にしない(=ブログには向かない)
  • SSRにこだわらない

といったところでしょうか。

もし、Framer Motionに興味がある方はFramer Motion Examples
サンプルアニメーションをチェックしてみてくださいね!

0
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
0
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?