{"id":25416,"date":"2024-07-03T18:41:25","date_gmt":"2024-07-03T09:41:25","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25416"},"modified":"2024-07-03T18:41:27","modified_gmt":"2024-07-03T09:41:27","slug":"react-%e5%90%88%e8%a8%88%e9%87%91%e9%a1%8d%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%ef%bc%81","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25416","title":{"rendered":"React \u5408\u8a08\u91d1\u984d\u3092\u8868\u793a\u3057\u3066\u307f\u3088\u3046\uff01"},"content":{"rendered":"\n<p>index.html<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"ja\">\n\n&lt;head>\n  &lt;meta charset=\"UTF-8\">\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  &lt;title>My React App&lt;\/title>\n  &lt;script src=\"https:\/\/unpkg.com\/react@18\/umd\/react.development.js\">&lt;\/script>\n  &lt;script src=\"https:\/\/unpkg.com\/react-dom@18\/umd\/react-dom.development.js\">&lt;\/script>\n  &lt;script src=\"https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js\">&lt;\/script>\n  &lt;link rel=\"stylesheet\" href=\"style.css\">\n&lt;\/head>\n\n&lt;body>\n  &lt;div id=\"container\">&lt;\/div>\n\n  &lt;script type=\"text\/babel\">\n    'use strict';\n\n    {\n      const Menu = (props) => {\n        const decrement = () => {\n        };\n        const increment = () => {\n        };\n\n        return (\n          &lt;li>\n            &lt;button onClick={decrement}>-&lt;\/button>\n            &lt;button onClick={increment}>+&lt;\/button>\n            {props.name} ({props.price}G \u2613 {props.count}\u500b)\n          &lt;\/li>\n        );\n      };\n\n      const App = () => {\n        const &#91;counts, setCounts] = React.useState(&#91;1, 1, 1]);\n        const menus = &#91;\n          { id: 0, name: '\u30dd\u30fc\u30b7\u30e7\u30f3', price: 400 },\n          { id: 1, name: '\u30cf\u30a4\u30dd\u30fc\u30b7\u30e7\u30f3', price: 500 },\n          { id: 2, name: '\u30a8\u30ea\u30af\u30b5\u30fc', price: 300 },\n        ];\n        const total =\n          (menus&#91;0].price * counts&#91;0]) +\n          (menus&#91;1].price * counts&#91;1]) +\n          (menus&#91;2].price * counts&#91;2]);\n\n        const menuItems = menus.map((menu) => {\n          return (\n            &lt;Menu\n              key={menu.id}\n              count={counts&#91;menu.id]}\n              name={menu.name}\n              price={menu.price}\n            \/>\n          );\n        });\n\n        return (\n          &lt;>\n            &lt;h1>\u30e1\u30cb\u30e5\u30fc&lt;\/h1>\n            &lt;ul className=\"menus\">\n              {menuItems}\n            &lt;\/ul>\n            &lt;p>\u5408\u8a08: {total}G&lt;\/p>\n          &lt;\/>\n        );\n      };\n\n      const container = document.querySelector('#container');\n      const root = ReactDOM.createRoot(container);\n      root.render(&lt;App \/>);\n    }\n  &lt;\/script>\n&lt;\/body>\n\n&lt;\/html><\/code><\/pre>\n\n\n\n<p>style.css<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@charset \"utf-8\";\n\nbody{\n    margin: 0;\n}\n\n#container{\n    width: 400px;\n    margin: auto;\n}\n\nh1{\n    margin: 16px 0 0 0;\n    font-size: 20px;\n    text-align: center;\n}\n\n.menus{\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n}\n\n.menus > li{\n    border: 1px solid #ccc;\n    padding: 8px;\n    border-radius: 8px;\n    margin-top: 16px;\n}\n\n.menus button{\n    margin-right: 8px;\n    width: 24px;\n}\np{\n    margin: 0;\n    text-align: right;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>index.html style.css<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[4,132],"tags":[3,133],"class_list":["post-25416","post","type-post","status-publish","format-standard","hentry","category-programming","category-react","tag-programming","tag-react"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25416"}],"version-history":[{"count":1,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25416\/revisions"}],"predecessor-version":[{"id":25417,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25416\/revisions\/25417"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25416"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}