Open17

何でも学習記録(ただのメモです)

ワッキーワッキー

vscodeで子要素を複数個持っているディレクトリを移動させる方法

移動できないので新しいディレクトリを作成してそこにコピペする

ワッキーワッキー

Next.js13 [id]の使い方

ディレクトリ構成
foo/
├── [id]/
│ ├── page.jsx
│ └── hoge/
│ └── page.jsx

foo/1
foo/1/hoge

ワッキーワッキー

(foo)ディレクトリ内のlayoutは外部に影響を及ぼさない

├── (top)/
│ ├── hoge/
│ │ └── page.jsx
│ └── layout.jsx
├──このディレクトリに(top)/layoutは影響しない foo/
└── page.jsx

ワッキーワッキー

cssでできることはcssに任せるべき

JSでアニメーションを作ることはできるが、cssでできるのであればcssの方が圧倒的に速度が速い

GPT:アニメーションは、できるだけ CSS を使用する方が効果的です。ブラウザはアニメーションの最適化を得意としており、ハードウェアアクセラレーションを活用できます。
自分の解釈:簡単に言うとハードウェアアクセラレーションはCPUの役割をGPUに分散させる仕組みのこと

jsでもハードウェアアクセラレーションを使うことはできるが、特定のライブラリなどを使う必要がある

ワッキーワッキー

shadcnUIはコンポーネントライブラリ
react aria components はヘッドレスなコンポーネントライブラリ
ヘッドレスなコンポーネントとはUIの振る舞いやロジックに焦点を当て、デザインは自由にユーザーが変えることができるライブラリ

ワッキーワッキー

w-[fit-content]
linkの押せる範囲がscreenサイズになっている時などに、テキストのサイズに合わせてくれる

ワッキーワッキー

marginを使わない理由
marginというのは子要素が親要素に影響を与えるので、逆のことをしてしまうから良くないことが起こることがあります。paddingだと親要素が子要素に影響を与えるので使っていきましょうってことでした

ワッキーワッキー

Error: (0 , react_intersection_observer__WEBPACK_IMPORTED_MODULE_4__.useInView) is not a function or its return value is not iterable

"use client"がないだけ

ワッキーワッキー

※自分なりの考え方
propsの命名の考え方、受け取る値で何をするのかで決める
オブジェクトをprospに渡し、その中のtextのみを使うのであればtextにする

ワッキーワッキー

TypeScriptを使って感じたメリット
prospに型を付けることで、コンポーネントに何を渡せば良いのかが一目でわかる

ワッキーワッキー

subgrid

   <div className="grid grid-flow-col">
        <div className="row-span-2 grid grid-rows-subgrid">
          <div>1</div>
          <div className="row-start-2">06</div>
        </div>
        <div className="row-span-2 grid grid-rows-subgrid">
          <div className="row-start-2">06</div>
        </div>
      </div>
ワッキーワッキー

RLS disabled - supabase

RLSがセキュリティに関すること
disabledになっていると無効になっている、つまり誰でもアクセス可能になっている
これをenable状態にすることができる、
例えばデータの追加だけを許可する、データの読み込みだけを許可するのような
ポリシーを設定することができる

テンプレートを使用してPolicyを作成したい方はGet started quicklyを選択し、完全に0からPolicyを作成したい方はFor full customizationを選択します。

ワッキーワッキー

prisma.post.findMany()

prisma.post.findMany()は、Prismaが自動生成したメソッドを呼び出して、データベース内のすべての投稿を取得します。

ワッキーワッキー

replace 置換

カンマ区切りの文字列を数値に変換
第一引数を第二引数で置換する

export const commaToNum = (str: string) => {
  const noCommaStr = str.replaceAll(",", "");//Allなので全てのカンマを置換
  return Number(noCommaStr);
};

replace() //Allではない場合は最初に見つけたものだけを置換
replace("apple","")//appleを無くす、applaeみたいに一部だけ違う場合は置換できない

ワッキーワッキー

propsが橋渡しになっている場合に考えること

無駄なコンポーネントを削除して階層を上げることでpropsが一回だけで済む

ワッキーワッキー

型定義した値をpropsで渡すとanyになる

propsで渡されたデータの型はprops名:親で定義した型とする(mapしたもの)