Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Tsubasa AmadeusGmbH

🏠
Working from home
  • Tokyo, JP
View GitHub Profile
View do_not_modify_state_directly.md

[React.js] state を直接に編集してはならない

例えば、以下のように this を変更してもコンポーネントは再描画されません。

// Wrong
this.state.comment = 'Hello';

そうではなく、代わりに setState() を使うべきです。

View difference_between_state_and_props.md

[React.js] state と props の違い

state

state はコンポーネント内部で保持されるデータです。局所的に特定のコンポーネントが所有し、コンポーネント自身が setState 関数を使って更新します。

props

props は親コンポーネントから渡されるデータです。これを受け取った子コンポーネントでは読み込み専用(read-only)となり、データを更新することはできません。ただし、コールバック関数を渡すことで子コンポーネント内でも更新することができます。

両者の違い

コンポーネントはデータを保持します。state は局所的に保持され、コンポーネント自身が更新します。一方、props は親コンポーネントが保持し、読み込み専用(read-only)です。props は子コンポーネントにコールバック関数が渡された場合に限って更新できます。

View useful_zshrc.sh
# Fancy zshrc
# License : MIT
# http://mollifier.mit-license.org/
########################################
# Environment variable
export LANG=en_US.UTF-8
## or Deutsch(de_DE), Français(fr_FR), Español(es_ES), Русский Язык(ru_RU),
## 中文(zh_CN, zh_HK), 國語(zh_TW) 日本語(ja_JP) etc.
## 'locale -a' for details
View hello.ex
IO.puts "Hello, world!"
@AmadeusGmbH
AmadeusGmbH / closure.md
Last active Jul 30, 2020
[Ruby]クロージャとは
View closure.md

[Ruby]クロージャとは

プログラムを勉強しているとクロージャという如何にも上級者を思わせるこの用語が気になることと思います。Wikipedia にはどのように説明されているのでしょうか引用します。

クロージャ(クロージャー、英語: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数で実現している。引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。 クロージャ -Wikipedia

なにやら難しそうな言葉を使って説明していますが、理解してしまったら呆気なさすぎてびっくりすると思いますよ。

Proc オブジェクト

Ruby はブロックを Proc クラスのインスタンスとしてオブジェクト化できますね。このオブジェクトに対して call メソッドを呼ぶとブロックが発動される。Proc オブジェクトを生成する方法が以下の通り。

@AmadeusGmbH
AmadeusGmbH / argument.md
Created Jan 20, 2018
[Ruby]引数の種類
View argument.md

[Ruby]引数の種類

ちょっと Ruby を離れていたので、久しぶりですからメソッドの引数を復習します。通常の引数とデフォルト引数については書きません。「たのしいRuby」を何度もめくるのは大変なので自分用のメモでもあります。何か見つけたらコメントをよろしくお願いします。

仮引数の順序

上が左、下が右です。

  • 通常の引数(複数指定可)
  • デフォルト引数(複数指定可)
  • * を伴う引数(1つだけ指定可)
  • 通常の引数(複数指定可)