2017-08-01から1ヶ月間の記事一覧

Flow-Typedで型定義をまとめて取り込む

Flowはいまのところマジ大変。どうやら一番成長の速い時期にぶつかってしまったらしく、わからないことを調べても皆がバラバラなことを言ってたりして困る。サンプルで数行のお試しコードを書いてる分にはハマりどころも少ないんだけど、ちゃんと出来上がっ…

Flowでの型チェック環境を設定する

flow.org ちょっと前に、redux-formのリポジトリで「🎉 Flow Typing 🎉 (#3138)」と絵文字まじりのコミットログを見つけて気になって(絵文字を)調べたついでから、JSの型チェックを行うFlowを知りました。型はコードの堅牢性を高めると信じてるので大好きなの…

Material-uiがreact-tap-event-pluginを廃止してた

リリースノートを見るとすでに二週間近く前のことですが、Material-UIが0.19.0をリリースし、長年引っ張っていたreact-tap-event-pluginを廃止していました。onTouchTapと各所にあったものがonClickに置き換わっています。後方互換のためかonTouchTapのまま…

Jest+EnzymeでReactコンポーネントをテストする

JestはそもそもReactアプリをテストするためにあるのだと思うのですよ。作り手が同じFacebookだし、ドキュメントにもそういうことを言ってます。そこでJestでReactをテストしようとドキュメントにあたるとAirbnbの作るEnzymeを使うことを推奨されていました…

Jestのモック機能を活用する

テスト環境をJasmineからJestに入れ替えましたので、カバレッジを上げるためおよびTDD的にもこちらの活用を行っていきたいと思います。一年ぐらい、いや二年?、目を離した間にモック機能がかなり成熟していました。 そのまえにeslint react/jsx-boolean-val…

ReactとReduxのためのChrome拡張機能

さらに昨日の続き。 chrome.google.com かねてよりChrome拡張機能でReactアプリケーションのリアルタイムコンポーネント構造を見るためのReact Developper Toolsを用いていましたが、HMR環境でも問題なく活用できています。HMRで部分再描画ができてる時にはT…

HMRの完成度アップ、ReducerのHMRも

昨日までで完成かと思ってたら、さらに続きが! HMR環境で開発してたら、react-reduxのProviderコンポーネントが以下の警告をブラウザのstdoutに出してました。 does not support changing `store` on the fly. It is most likely that you see this error b…

react-reduxのHMRできた!

ここ連日の続き、完結です。 react-router v4での完全再描画を伴わない、変更箇所だけ表示が更新されるHMR(Hot Module Replace)ができました。理由はreact-reduxのProviderコンポーネントの置き場所。連日のアプリケーションが以下のように変わって完成。…

いよいよreact-router-redux v5へ

一昨日、昨日の続きです。 react-routerをv4へマイグレーションすると同時に、react-router-reduxもv5に上げます。こちらはまだアルファ版ということですが、十分に機能するしとてもシンプルなためにコード読んですぐ分かる内容ですから、危険視するほどでは…

react-router v3 to v4移行

昨日の続きです。 path-to-regexp まずはMISC。 github.com react-routerのv3 to v4マイグレーション中に遭遇。v3までreact-routerが自前にURLをパースしていたのに代えてライブラリを使うようになってました。Expressスタイルというらしいコロン前置のパラ…

ReactのHMR環境を作る

昨今のトランスパイルやバンドル作業が行われるWEBフロント開発では書いたコードがそのままブラウザで動かないために、WEBブラウザで実行確認するためにはビルド・ブラウザリロードの手間が必要です。HMR(Hot Module Replacement)環境を構築すると、コードが…

しばらく見ない間にES6開発ツールセットが良くなってた

WEBのフロントエンドをES6でreact + redux + react-router + Material-UI利用して書いてますが、このビルド環境をそれまでのGulp + Browserifyからnpm + webpackに置き換えました。しばらく見ない間にツール毎の進化があって組み合わせがシンプル化できるよ…