15
16

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.

React での Modal 実装方法

Last updated at Posted at 2018-04-13
1 / 14

面倒な UI だが必ず出てくるモーダル。


モーダルにURLをもたせる、モーダル内でさらに遷移が発生する..etcとなると、さらに複雑な実装に。


React & Redux で真正面からモーダルを実装してみる。


modal1.png


気に入らない箇所

  • Homeで必要なモーダルなのに、内容はモーダルコンポーネント内に記述しないとならない。
  • 「このモーダルはユニークURLを持ちたい」といった場合に、処理が複雑になってくる。汎用性に欠ける。
  • そもそもモーダルの開閉にReduxステートは必要なのか。

React の Portals


Portals

Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component.

React の純粋な機能で、root の DOM 以外の箇所にコンポーネントを render できるよ。


こんなことができる

A4 Copy.png


まさにモーダルのための機能


Portals を使ってモーダルを実装してみる。


A4 Copy 2.png


メリット

  • モーダル内のコンテンツを、ベースのコンポーネントに内包することができる。Aboutページのモーダル内容はAboutコンポーネントに、など。
  • コンテンツ内でルーティングもできるので、このコンポーネントにはURLを持たせたくない、持たせたくない、などのハンドリングが簡単。
  • Reduxのステートを使わないで、コンポーネントのステートだけで実装可能

React はアップデートごとに便利な新機能が増えるので要注目。

15
16
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
15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?