未分類

カレンダーアプリ改

投稿日:

全く理解できなかった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

新幹線の中

 昨日は疲れすぎてブログ書いていなかったので朝書きます。久しぶりに11時間くら寝ていました。昨日は考え事しすぎて脳が疲れたのですね。一体何を考えていたのかというと、将来のことを考えていました。Y&Iの …

no image

一人暮らし開始

昨日引越しが無事に終わり、今日から本格的に一人暮らしが始まります。わからないことだらけで頭がパンクしそうですが、なんとかやっていきます。初めての夜ご飯のメニューは鍋でした。実家から持ってきた鍋の本を入 …

no image

動物の認識

 「動物と人間の世界認識」を読んでいます。この本は他の動物の世界はどのように見えているのかを科学的に観察し、想像してみる本です。他の動物は人間と同じ世界を見ている訳ではありません。理性がないと言われて …

no image

コンピュータは0と1で動いている

 今日もコンピュータの仕組みについての本を読みました。コンピュータは入力・処理・出力の順番に動くのですが、他の機械と違ってなぜ複雑なことができるのでしょうか。それはコンピュータがハードウェアとソフトウ …