{"provider_url":"https://hatena.blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fcode.tatsukichi.ninja%2Fentry%2F2025%2F01%2F06%2F181848\" title=\"TypeScript\u3068Next.js\u5165\u9580\u3000\u305d\u306e1 - \u72ac\u98fc\u305f\u3064\u304d\u3061\u306e\u30b3\u30fc\u30c9\u30e9\u30a4\u30d5\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","version":"1.0","image_url":null,"author_name":"ttiz","url":"https://code.tatsukichi.ninja/entry/2025/01/06/181848","width":"100%","description":"// @next/app 'use client'; import React, { useState } from 'react'; const MyComponent = () => { const [inputValue, setInputValue] = useState(''); const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => { setInputValue(event.target.value); }; return ( <div> <input type=\"text\" value={inpu\u2026","published":"2025-01-06 18:18:48","provider_name":"Hatena Blog","height":"190","type":"rich","title":"TypeScript\u3068Next.js\u5165\u9580\u3000\u305d\u306e1","blog_url":"https://code.tatsukichi.ninja/","categories":["Next.js","React.js","TypeScript","JavaScript"],"author_url":"https://blog.hatena.ne.jp/ttiz/","blog_title":"\u72ac\u98fc\u305f\u3064\u304d\u3061\u306e\u30b3\u30fc\u30c9\u30e9\u30a4\u30d5"}