ウェブフロント
- angular
- corewebvitals
- editorconfig
- gatsby
- hls
- html
- javascript
querySelectorAllで取得した要素は配列ではないらしい
JavaScript 配列内のオブジェクトの更新ってどうする?
デバッグ関数とかnullチェック関数をutil/index.tsにおいとけば楽なことに今頃気づいた。
ブラウザからジャイロセンサーを使ってみる
JS 画像のアップロード、プレビュー機能を実装
「数値から各桁の値を取り出す処理」って言われたら数学的な処理が一番に思い浮かぶけど、JSならそんなことなかった。
Callback時代の関数をPromise化する
個人的実装されてほしいECMA Script Proposal
JavaScriptのprototypeを使う
音声をなみなみさせる
AudioWorkletとAudioWorkletProcessorを使って音声のビジュアライゼーション
- next
- nuxt
- playwright
- prettier
- react
- reactnative
- tensorflowjs
- tools
- typescript
- wasm
- websocket
- ポエム
- 開発環境
サーバー
その他
Gatsby Slice APIをTypeScriptで
Slice APIとは
Gatsby v5で追加されたページ生成を高速化するためのAPIです。
ページごとの共通コンポーネントをSliceしてビルドを高速します。
HeaderをSliceする
例として今日つコンポーネントのHeaderをSliceします。
HeaderComponentを以下に示します。
Slice APIはコンポーネントが
export default
してある前提です。注意しましょう。
src/components/shared/Header/index.tsx
const Header = () => {
return (
<Fragment>
<div css={styles.header}>
<Link to='/'>
<h3 css={styles.title}>fukke.cafe</h3>
</Link>
</div>
</Fragment>
);
};
export default Header;
gatsby-nodeでSliceします。
createSlice
メソッドにidとコンポーネントのパスを渡します。
gatsby-node.ts
import type { GatsbyNode } from 'gatsby';
import { resolve } from 'path';
export const createPages: GatsbyNode['createPages'] = ({ actions }) => {
const { createSlice } = actions;
createSlice({
id: 'header', // ここのidがaliasになる
component: resolve('src/components/shared/Header/index.tsx')
});
};
Sliceしたコンポーネントは
<Slice/>
で使えます。
src/components/layouts/Detail/index.tsx
import { Slice } from 'gatsby';
<header>
<Slice alias='header' />
</header>
Thanks you for reading.