未分類

カレンダーアプリ改

投稿日:

全く理解できなかったreduxがほんの少しわかってきたのでカレンダーアプリに戻りました。当初の予定では1月中にはカレンダーアプリを作成し終わる予定だったのですが、カレンダーアプリを舐めていたこともあり、断念しました。それの原因となるのはreduxと言われているコンポーネントから独立して状態を持つことができる機能の複雑さでした。クラスコンポーネントを使った場合にはクラスの中でstateとして状態を持つことができるのですが、関数コンポーネントの中ではstateを持つことができません。それではクラスコンポーネントを使えばいいということになりそうなのですが、そうしない理由の一つにjavascriptのthisの挙動によるエラーを上げる事ができます。thisを使ったstateの参照では常に新しい値が参照されます。この何がいけないのかというと送られるべきthisで参照する値がユーザーに表示させる途中で変更があった場合に表示させるべき値ではなく、変更後の予期しない値を表示させてしまう事があります。これを避けるためにthisの内容が予め決まっている関数を使ってコンポーネントを表示させるのが望ましいのです。そこで関数コンポーネントでもstateとして状態を持つ事がd駅るように考えられた仕組みがreduxというものです。これはコンポーネントから独立してstateを保持し、欲しい時に随時参照する事が可能になります。その仕組みはややこしいのですが、状態をコンポーネントから分けることによってコンポーネント内部の可読性が向上します。そもそもクラスコンポーネントでstateを持たせる場合でもその子要素でも孫要素でも同じstateを持たせたい場合には最上層のコンポーネントにstateを保持させておくことになるのですが、それを子要素にバケツリレー式にpropsで渡していくことになり、アプリの規模が大きくなると訳のわからないことになるのです。こうした理由でreduxが使われ、コンポーネントもできるだけ関数で書くようになってきています。

今日学んだこと

訳のわからなかったカレンダーアプリを断念し、reduxを使った簡単なアプリを作ってreduxの理解を深めてから再度カレンダーアプリに戻りました。そうしたらばカレンダーアプリを作成していた当初よりもどんな実装をしているのかわかるようになっていることに気がつきました。闇雲に突っ込んでいくのではなく、多少遠回りしても着実に理解していき、進んでいく事が大事だと思いました。理解するという事がどういうものかとても不思議なのですが、全くわからなかったものがわかるようになることは楽しいことだと感じました。なのでこれからも訳のわからないものが現れればそれを理解した先には面白い事があるということを肝に命じていきたいと思います。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

焼肉へいきました

 今日は焼肉を食べました。満足。カルビが韓国語で肋骨という意味だということを初めて知りました。ちなみにてっちゃんは大腸の部分だったのです。おじいちゃんがまだ真っ赤なお肉を自分のお皿入れきて殺す気かと思 …

no image

ハイデガー入門

ハイデガーは20世紀最大の哲学者と言われています。その代表作は「存在と時間」でなんとも厨二心こすぐられるタイトルなんだと思い気になっていました。そこでまずハイデガーがどのような人物なのかを知るためにハ …

no image

初投稿!

ブログを始めることにしました。理由は単純で、アウトプットをして知識を深め、もっと楽しくなるように考えることができるようになりたいと思ったのと、何より新しいことを始めたいと思ったからです。 文学、プログ …

no image

PHP2

 クラスプロパティを学びました。public static ~ で定義するのですが、これはクラスのインスタンスの合計のカウントをとるときに使い、アクセスはクラス名::$クラスプロパティ名で取得します。 …

no image

日本の経済史

 今日から「日本史で学ぶ経済学」を読んでいます。この本は主に日本史の歴史から経済の重要ポイントを選り出して今の経済に生かすことができるのかという本です。未来はみることができないので今のこの策が将来どの …