JavaScript からTypeScript に書き直し中(64日目)

わしの
·

📝きょうの学習

YouTubeで見つけたRemixの実装について、Cloneしてバージョンアップをしている。YouTubeの実装はJavaScriptなのでTypeScriptで書き直して勉強。

右がYouTubeのコード、左が書き直し。DB接続はできるようになった。あとはセッション管理。

読み込んでいるライブラリはこんな感じの差異がある。

  "dependencies": {

    "@remix-run/react": "^1.0.4",

    "@remix-run/serve": "^1.0.4",

    "@ryanflorence/md": "^7.0.1",

    "dotenv": "^10.0.0",

    "firebase": "^9.6.1",

    "firebase-admin": "^10.0.1",

    "front-matter": "^4.0.2",

    "react": "^17.0.2",

    "react-dom": "^17.0.2",

    "remix": "^1.0.4",

    "tiny-invariant": "^1.2.0"

  },

  "dependencies": {

    "@remix-run/node": "^2.8.1",

    "@remix-run/react": "^2.8.1",

    "@remix-run/serve": "^2.8.1",

    "firebase": "^10.10.0",

    "firebase-admin": "^12.0.0",

    "isbot": "^4.1.0",

    "react": "^18.2.0",

    "react-dom": "^18.2.0"

  },

👀気づいた実装の違い

1.RemixのLoaderに対して型推論が使えるようになっている(v1.6.5以降らしい)

let posts = useLoaderData<typeof loader>();

2.動的セグメントルーティングは階層を作ると使えない

V.2.0以降はフラットファイルルーティングにしないと動かない

3.import元が違う

v1.0

import { Link } from "remix";

v2.0

import { Link } from "@remix-run/react"

そのほか

  1. loaderの型はLoaderFunctionArgs、actionの型はActionFunctionArgs

export let loader = async ({ params, request }:LoaderFunctionArgs) => {

  1. 最近のcreate-remix@latestを実行すると、Viteが含まれるようになった。

🍚きょうのごはん

きょうのごはんは麻婆豆腐うどん。

麻婆豆腐を食べようと思ったら白飯を切らしていたので、うどんにかけました。見た目があれなので、写真はなし。

@wassy
ものづくりが好き。