【React】Nextでace.jsを使ってエディタ表示する


gl-reactを使ってGLSLでリアルタイムな画像処理がしたい。

ace.jsという有名なコードエディタがあるので使いたいですが、Reactでそのまま使うとなると難しそう。

バージョンは最新ではないもののReactコンポーネント化したreact-aceというものがあったので、その使い方とnext.jsで使う時の注意を覚書き。

やりたいこと

GLSLを書くと画像に反映させたい。

これはtextareaでも可能ですが見栄えは悪いし書きにくいです。

使い方

モジュールを2つ追加します。

 

next.jsでサンプルをそのまま使おうとするとエラーになりました。

ReferenceError: window is not defined

importする段階でwindowを使おうとしてエラーが起きているようです。

 

最初はDOM構築前にwindowがないからダメなやつかなと思ったんですが、Reactコンポーネントでそこを考慮してないことはない気がする。

動作を見るとnextのサーバーサイドレンダリングでエラーが起きている気がする。

 

importの代わりにrequireを使ってクライアント側だけで呼び出すようにします。

 

言語をglslにして見た目を好みなものに変更。

モード(言語)とテーマの一覧はこちら。大体ある気がする。

 

これでいい感じになりました。


コメントを残す

メールアドレスが公開されることはありません。