1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【初心者メモ】Reactのカスタムフック用のスニペットを書いた【VSCode】

Posted at

そもそもスニペットって何?

分かりやすい記事がありました。(丸投げ)

スニペット本体

{
  "customHooksSnippet": {
    "prefix": "cshk",
    "body": [
      "export const ${TM_FILENAME_BASE} = () => {",
      "\tconst [${1:first}, set${1/(.*)/${1:/capitalize}/}] = useState(${2:second})",
      "\tuseEffect(() => {",
      "\t\tset${1/(.*)/${1:/capitalize}/}(${2:second})",
      "",
      "\t\treturn () => {",
      "\t\tset${1/(.*)/${1:/capitalize}/}(${2:second})",
      "\t}",
      "\t}, [])",
      "",
      "\treturn {${1:first}};",
      "};",
      "$0"
    ],
    "scope": "typescript,typescriptreact,javascript,javascriptreact",
    "description": "Create react basic custom hooks"
  }
}

使い方

  • js,ts,jsx,tsxファイルで"cshk"と入力すると候補に出てくるようになる。(別のキーで呼び出したい場合は、上記jsonの"prefix"を修正する。)
  • フック名はファイル名をそのまま流用する。1ファイルで複数のフックを書くなら修正が必要。
  • 最初にフォーカスが当たるのがstate。入力後tabキーで初期値に移動する。移動時にsetの部分が勝手に大文字始まりになるようになっている。

所感

Reactの書き手という視点

基本的にはMarketplaceで仕入れればいい(例えばこれとか)が、カスタムフックが見当たらなかったので自作。まあそもそも"カスタム"だから定型文は自分で書いて然るべき…なのか?

そもそもhooksの理解が足りてないのが悲しい。

自作スニペットについて

むしろ自分でスニペットを一から書いてみるというほうが目的だったまである。

初めて書いたので記法は見よう見まね。幸いにも先に挙げた拡張機能のソースが公開されてるので、これと公式ドキュメントを参考にしながら四苦八苦して書いた。

ちゃんと思った通りに動いた部分とそうでもない部分がある。あまり伸ばしてもしょうがないスキルのような気もするが、必要になったら積極的に書いて慣れていきたい。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?