ウェブフロント
- 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 mdxにReactコンポーネントを配置する
カウンターを作りました!↓
普通にコンポーネントを作ります
任意の場所にコンポーネントを作成します。
mdx内で使うコンポーネントなのでPropsとかは気にせず全マシマシで作りました。
CounterButton/index.tsx
import { css } from '@emotion/react';
import { ComponentPropsWithRef, useState } from 'react';
type Props = ComponentPropsWithRef<'button'>;
const style = css`
border: 1px solid currentColor;
color: blue;
padding: 8px 4px;
min-width: 200px;
border-radius: 16px;
font-weight: bold;
:hover {
color: white;
background-color: blue;
border-color: currentColor;
}
`;
export const CounterButton = ({ ...props }: Props) => {
const [count, setCount] = useState(0);
const increment = () => {
setCount(prev => prev + 1);
};
return (
<button {...props} onClick={increment} css={style}>
{count}
</button>
);
};
MDXProviderにコンポーネントを渡す
MDXProviderに渡すとつかえるようになります。
mdxファイルで直接インポートもできますが僕の環境ではうまくいかなかったです。(多分pathの問題)
import { CounterButton } from '../../examples/CounterButton';
// mdx内で使いたいコンポーネントを入れる
const shortcodes = { CounterButton };
// componentsに渡す
<MDXProvider
css={styles.text}
components={{
...shortcodes
}}
>
mdxで使用
カウンターを作りました!↓
<CounterButton />
Thanks you for reading.