django manage SPA
アプリを作成する
djangoのstartappの代わりに、create-react-appでアプリを作成します。
nodeをインストール後、npm install -g create-react-appを実行することで使用できます。
django-admin startproject my-projectcd my-projectcreate-react-app my-react-appcd my-react-app
Setup Atom
突然Atomが起動しなくなったときに、再び入れたときのメモです。 AtomはChromeベース (electron) で作られたアプリなので拡張機能が多く、 vimのようなコマンドやほかのエディターのツールなど、無限に拡張できます。
Typescript | and &
Typescriptの合併|と公差&がわかりにくかったので、食事の例で考えてみました。
献立表を作るとき、次のようにサラダとパスタとピザの型を定義します。
今回は、サラダとパスタのトマトは数を数えられるとしてnumber型、
ピザのトマトはペースト状なのでboolean型にしているので注意してください。
type Salad = {tomato: number}
type Pasta = {tomato: number, macaroni: boolean}
type Pizza = {tomato: boolean, cheeze: boolean}
Django and Pagination
本サイトに使ったfetchするurlを相対的に指定するCursorPaginationのメモです。 次のDjangoのPaginationのうち、データ更新が頻繁なアプリにはカーソル型が適しています。
- PageNumberPagination
e.g. ~/?page=4 - LimitOffsetPagination
e.g. ~/?limit=5&offset=400 - CursorPagination
e.g. ~/?cursor=cj0xJnA9MjAxOC
React hooks
Reactは簡単にいうと、Webなどの処理と開発を最適化するための新しいエコシステムといえます。 また、hookは関数ベースのみでReactを実装する方法なので、型システムと相性がいいです。
前半では、DOMを直接触らない大体のjsコードをhookで使用する方法をまとめました。 後半では、前半で使ったhookを使って、独自のhookを新たに作る方法をまとめました。
React.js, assign to arguments
build with webpack and rollup
アプリにはcss等のファイルが扱えるwebpack, ライブラリには一つのファイルに縮小して変換してくれるrollupが使いやすいです。
特にcreate-react-appでReact環境を作成後、デモページの作成と同時にライブラリを開発するのが安定しているのでおすすめです。
今回は、cross-envでグローバル変数を設定し、react-app-rewiredでcreate-react-appの中の設定を変更します.
tsやcssなど追加で用いる場合はrollup/plugins: 🍣からプラグインを選んで使います。
create-react-app {yourapp}andcd {yourapp}npm i -D cross-env react-app-rewired rollup @rollup/plugin-babel @rollup/plugin-node-resolve @rollup/plugin-commonjs fs
THREE.js in React
THREE.js は WebGL を用いて3D表現ができるライブラリです。
従来の js だと大規模なアプリになると予期しないことが多く起こるので、
view に特化した React のライフサイクル上で安全に構築します。