{"id":2054,"date":"2022-07-17T07:36:09","date_gmt":"2022-07-16T22:36:09","guid":{"rendered":"http:\/\/www.agile-software.site\/?p=2054"},"modified":"2022-07-17T08:17:25","modified_gmt":"2022-07-16T23:17:25","slug":"context-api","status":"publish","type":"post","link":"https:\/\/agile-software.net\/?p=2054","title":{"rendered":"Context API"},"content":{"rendered":"\n<p>React\u304c\u57fa\u672c\u7684\u306b\u6301\u3063\u3066\u308b\u30e1\u30a4\u30f3\u30b9\u30c8\u30ea\u30fc\u30b8\u3082\u3042\u308a\u307e\u3059\u3002\u305d\u308c\u304c<code>context<\/code>\u3067\u3059\u3002<br>\u305d\u3057\u3066\u3053\u306e<code>context<\/code>\u3092\u751f\u6210\u3057\u3066\u304f\u308c\u308bAPI\u304cContext API<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">context\u306e\u751f\u6210<\/h2>\n\n\n\n<p><code>createContext<\/code>\u3068\u3044\u3046\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3063\u3066\u751f\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>import { createContext } from &#39;react&#39;;\nexport const LanguageContext = createContext(&quot;kr&quot;);<\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b<code>createContext<\/code>\u3067\u751f\u6210\u3057\u305f<code>context<\/code>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u306f<code>Provider<\/code>\u3068<code>Consumer<\/code>\u3068\u3044\u3046\u7279\u5225\u306aReact\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u5165\u3063\u3066\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Provider<\/h2>\n\n\n\n<p><code>Provider<\/code>\u306f<code>value props<\/code>\u3092\u7528\u3044\u3066<strong>\u5b50\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u305f\u3061\u306b<code>state<\/code>\u3092\u6e21\u3059\u5f79\u5272<\/strong>\u3067\u3059\u3002<code>Provider<\/code>\u306e\u4e2d\u306b\u3042\u308b\u3059\u3079\u3066\u306e\u5b50\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306f\u305d\u306e<code>context<\/code>\u5185\u306e\u30c7\u30fc\u30bf\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>import React from &#39;react&#39;;\nimport LanguageContext from &#39;.\/LanguageContext&#39;; \/\/\u4e0a\u3067\u4f5c\u3063\u305fcontext\nimport MainContent from &#39;.\/MainContent&#39;;\u3000\/\/\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\nimport Header from &#39;.\/Header&#39;;\u3000\/\/\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\n\nexport const App = () =&gt; {\n  return (\n    &lt;LanguageContext.Provider value=&quot;kr&quot;&gt;\n      &lt;div className=&quot;App&quot;&gt;\n        &lt;Header \/&gt;\n        &lt;MainContent \/&gt;\n      &lt;\/div&gt;\n    &lt;\/LanguageContext.Provider&gt;\n  );\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u308c\u3067<code>Header<\/code>\u3068<code>MainContent<\/code>\u304c<code>context<\/code>\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u57fa\u672c\u7684\u306b\u306f<code>Consumer<\/code>\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Consumer<\/h2>\n\n\n\n<p><code>Consumer<\/code>\u306f<code>Provider<\/code>\u304b\u3089<strong>\u6e21\u3055\u308c\u305f<code>state<\/code>\u3092\u3082\u3089\u3063\u3066\u4f7f\u3046<\/strong>\u5f79\u5272\u3067\u3059\u3002<br>MainContent\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u30b3\u30fc\u30c9\u3067\u8868\u3059\u3068<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>import React from &#39;react&#39;;\nimport LanguageContext from &#39;.\/LanguageContext&#39;;\n\nexport const MainContent = () =&gt; {\n  return (\n    &lt;LanguageContext.Consumer&gt;\n      {(language) =&gt; (\n        &lt;section language={language}&gt;\n\t\/\/\u4f55\u3089\u304b\u306e\u5185\u5bb9\n\t&lt;\/section&gt;\n      )}\n    &lt;\/LanguageContext.Consumer&gt;\n  );\n};<\/code><\/pre><\/div>\n\n\n\n<p><code>Consumer<\/code>\u5185\u306e\u95a2\u6570\u3067<code>state<\/code>\u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<code>Provider<\/code>\u306e<code>value<\/code>\u3067kr\u3092\u6e21\u3057\u3066\u307e\u3057\u305f\u304b\u3089\u3001\u3053\u306e<code>language<\/code>\u306fkr\u306b\u306a\u3063\u3066\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">useContext<\/h2>\n\n\n\n<p><code>useContext<\/code>\u304c\u3084\u3063\u3066\u308b\u3053\u3068\u306f<code>Consumer<\/code>\u3068\u540c\u3058\u3067\u3059\u304c\u3001<code>Consumer<\/code>\u3067\u56f2\u307e\u306a\u304f\u3066\u3082\u6e21\u3055\u308c\u305f<code>state<\/code>\u3092\u3082\u3089\u3063\u3066\u4f7f\u308f\u305b\u3066\u304f\u308c\u308bhook\u3067\u3059\u3002<\/p>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/07\/10\/react-hooks\/\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>React\u304c\u57fa\u672c\u7684\u306b\u6301\u3063\u3066\u308b\u30e1\u30a4\u30f3\u30b9\u30c8\u30ea\u30fc\u30b8\u3082\u3042\u308a\u307e\u3059\u3002\u305d\u308c\u304ccontext\u3067\u3059\u3002\u305d\u3057\u3066\u3053\u306econtext\u3092\u751f\u6210\u3057\u3066\u304f\u308c\u308bAPI\u304cContext API context\u306e\u751f\u6210 createContext\u3068\u3044\u3046\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f<\/p>\n","protected":false},"author":1,"featured_media":2069,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jin_ogp_image_url":"","_jin_last_featured_id":0,"footnotes":""},"categories":[21],"tags":[],"class_list":["post-2054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react"],"_links":{"self":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts\/2054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2054"}],"version-history":[{"count":2,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts\/2054\/revisions"}],"predecessor-version":[{"id":2061,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts\/2054\/revisions\/2061"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/media\/2069"}],"wp:attachment":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}