Open1

simple nft exampleメモ

YuheiNakasakaYuheiNakasaka

simple nft exampleというnftアプリ開発のスマートコントラクトとフロントエンドが一緒になったtemplateがあった。

simple nft exampleメモ

リソース

やること

  • NFTのHello Worldより発展的なサンプルを読んでみる

メモ

simple-nft-exampleのコードリーディング

  • NFTをAccount同士で送り合えるスマートコントラクトとReactで作られたフロントエンドアプリ
  • react,hooks,graphql,ether.js,web3-modal,solidity,hardhat,infuraが使われてる
    • web3-modal
    • 自分はReact16.8以前までしか使ってないからhooksをよくわかってないっぽい
      • フック API リファレンス – React
        • ルール
          • フックは関数のトップレベルのみで呼び出す
          • Reactコンポーネント内部でのみ呼び出す
        • useState
          • stateとsetStateを返す
          • setStateでstateを更新するとstateをlistenしてるコンポーネントが更新される
          • FlutterでいうとStateNotifierみたいなやつ
        • useEffect
          • マウント時と更新時に実行される副作用(何かロードしたり色々)
          • 第二引数にstateを指定するとそのstateの更新時のみ実行されるようになる。空配列を指定すると全ての更新時に実行されなくなる。
          • callbackをreturnするとdispose時に実行してくれる。unsubscribeとかする時に便利。
          • FlutterでいうところのライフサイクルのinitStateやdidChangedDependenciesやdiposeの代わりになるやつ
        • useContext
          • そのコンポーネントのcontextを取得する。contextが変更されると更新される。
          • FlutterでいうところのriverpodのConsumerとその配下の更新の関係に似てる?
        • useReducer
          • reduxのreducer+useStateみたいなやつ。
          • Flutterに該当するやつはなさそう。
        • useMemo
          • メモ化された値を返す。
          • FlutterでいうところのGetterみたいなもんか?
        • useCallback
          • メモ化されたコールバックを返す。useMemoの関数版。使い所がよくわからん。
          • Flutterに該当するやつはなさそう。
        • useRef
          • 書き換え可能な値を保持するやつ。DOMへのアクセスを保持するのによく使う。inputのrefとか。
          • Flutterに該当するやつはない
        • useImperativeHandle
          • なんか色々カオスなことができそうなやつ。使うことはなさそう。
          • Flutterに該当するやつはない
        • useLayoutEffect
          • ほぼuseEffectと同じ。DOMの変更後に同期的に副作用が呼び出される点がuseEffectと異なる。
          • Flutterに該当するやつはない
        • useDebugValue
          • devtoolにラベルを表示できるやつ。
          • Flutterに該当するやつはない
        • カスタムフック
          • use始まりの関数。ロジックの共通化に便利。カスタムフック内のstateはそのフック内に閉じている。
    • Solidity
      • Solidity by Example | 0.8.3
        • Solidityの文法から特有の記法、主な攻撃コード例までコードサンプルがまとまってて良い。上から順に見ていくだけでプログラミングに親しんでる人には大体読める。
        • 気になったところ
    • ERC20
    • ERC721
    • 実際nft-scaffoldについて学ぶのが中心になってしまう。もうちょっとゼロから書いて理解したい。