ReactでTwitterのタイムラインなどを埋め込む

React(Next.js)でTwitterの埋め込みを行いたい。

主にタイムラインが対象ですが、一応何でも埋め込めるようにしておきます。

ライブラリを使ったり使わなかったり。

続きを読む ReactでTwitterのタイムラインなどを埋め込む

GLSLでお絵描き【極座標系と周期関数】

gl-reactを使ってGLSLでお絵描きをしてみます。

以下と同じようなGLSLの練習メモです。

続きを読む GLSLでお絵描き【極座標系と周期関数】

React Nativeの複数スタイル指定

状態に合わせてスタイルの上書き(オーバーライド)をしたいことはよくある。

スタイル自体はStyleSheet.createで定義してると思ってください。

通常[](配列)を使えばいいのですがちょっとハマったことがあったので、3つの方法と注意する点を書いておきます。

続きを読む React Nativeの複数スタイル指定

React.FCでもforceUpdateしたい

React管理下にない値の変更時に描画を更新したい。

あまり使いたいものでもないですが、React.Componentでは適切なタイミングでthis.forceUpdate()を使うことになります。

今回は関数コンポーネントで作成中にforceUpdateに当たる処理が必要になったのでどうにかしようという内容です。

続きを読む React.FCでもforceUpdateしたい

Next.js with Material-UIでスタイルが崩れる

Next.jsMaterial-UIの組み合わせでビルドすると予期せぬ表示ずれがあった。

現象としてはnext.jsのPHASE_PRODUCTION_BUILDgetInitialProps()のあるページで初回読み込みをするとmakeStylesによるスタイルが崩れる。

ErrorやWarningはないし上記以外のアクセスではスタイル崩れもない。

結構複雑な問題だったので要点をまとめながら解決を図ります。

環境:next: 9.1.7material-ui: 4.8.3react: 16.12.0カスタムサーバー express: ^4.17.1

続きを読む Next.js with Material-UIでスタイルが崩れる

Next.jsプロジェクトの公開手順

Next.jsで作ったアプリを公開、SSL対応、永続化するためのメモ。

nowじゃなくて普通に自前のLinuxサーバーに載せることを考えます。

気持ち的にはNext.jsプロジェクトの初期設定の続きです。

続きを読む Next.jsプロジェクトの公開手順

Next.jsプロジェクトの初期設定

next.jsはnowと合わせると秒単位でWEBアプリを公開できるような超速フレームワークですが、それなりの規模のものを作ろうと思うと色々設定が必要です。

大分慣れてきたので振り返りもかねてプロジェクト初期設定の備忘録。

プロジェクト作成からGit設定、各種コンフィグ類の設定、必須ライブラリの導入とカスタムページの用意まで。

続きを読む Next.jsプロジェクトの初期設定

Next.jsで外部ライブラリのスタイルシート適応

ReactでUIコンポーネントを使う時にMaterial-UIは一番有力な選択肢だと思います。

Next.jsでも同じように使いたいところですが、サーバーサイドレンダリング(SSR)時にcss modulesによるクラス名付与が合わなくなる問題が起きました。

index.js:1 Warning: Prop className did not match. Server: “MuiBox-root…

これによって一部スタイルが崩れてしまう。

devでの再コンパイルや内部遷移によって直ることもあるがproductionでも問題が起きるので使い物にならない状態なので対策します。

続きを読む Next.jsで外部ライブラリのスタイルシート適応

Next.jsのポート番号設定

Next.jsは基本ポート:3000で起動します。

これを定義1つで起動ポートから、プログラムからの参照(自身のAPIアクセスなどで)までするためのメモ。

続きを読む Next.jsのポート番号設定

【React】constructor内でContext APIを使用する

Next.jsを使っていてgetInitialProps()内でContext APIを使いたかったけど、Reactライフサイクル内にないため使えなかった。

じゃあpropsを経由してconstructor()内でコンテクストに入れようとしたら中身にアクセスできなかった。

componentDidMount()でも悪くはないけどrender()前に処理したいので、ドキュメントにない方法で使ってみます。

続きを読む 【React】constructor内でContext APIを使用する