{"id":2729,"date":"2019-12-02T10:50:05","date_gmt":"2019-12-02T01:50:05","guid":{"rendered":"http:\/\/www.whoocus.com\/blog\/?p=2729"},"modified":"2020-05-05T12:44:28","modified_gmt":"2020-05-05T03:44:28","slug":"phoenix-react-%e9%80%a3%e6%90%ba","status":"publish","type":"post","link":"https:\/\/www.blowfish.co.jp\/?p=2729","title":{"rendered":"Phoenix &#8211; React \u9023\u643a"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Phoenix Project \u4f5c\u6210<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$ mix phx.new ProjectName --app project_name --no-ecto<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">npm \u30e2\u30b8\u30e5\u30fc\u30eb\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">$ cd ProjectName\/assets\/node_modules\/<br>$ npm install --save @babel\/preset-react<br>$ npm install --save @babel\/polyfill<br>$ npm install --save react react-dom redux react-redux<br>$ npm install --save react-router-dom<br>$ npm install --save connected-react-router history<br>$ npm install --save redux-thunk<br>$ npm install --save axios<br>$ npm install --save redux-form react-hook-form<br>$ npm install --save react-bootstrap<br>$ npm install --save history<br>$ npm install redux-saga --save<br><br><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">.babelrc \u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">assets\/.babelrc<br>{<br>    \"presets\": [<br>        \"@babel\/preset-env\",<br>        \"@babel\/react\"<br>    ]<br>}<br><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8(index.js)\u306e\u5909\u66f4<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$mv assets\/js\/app.js assets\/js\/index.js<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">index.js<br><br>import React from 'react';<br>import ReactDOM from 'react-dom';<br><br>ReactDOM.render(<br>  &lt;div&gt;<br>    Hello React!!<br>  &lt;\/div&gt;,<br>    <strong><em>document<\/em><\/strong>.getElementById('root')<br>);<br><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">webpack.config.js<br><br>entry: {<br>  '.\/js\/index.js': glob.sync('.\/vendor\/**\/*.js').concat(['.\/js\/index.js'])<br>},<br>output: {<br>  filename: 'index.js',<br>  path: path.resolve(__dirname, '..\/priv\/static\/js')<br>},<br><br><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">index.eex \u306e\u5909\u66f4<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">lib\/project_name_web\/templates\/page\/index.eex<br><br>&lt;section class=\"row\"&gt;<br>  &lt;article class=\"column\"&gt;<br>    &lt;div id=\"root\"&gt;&lt;\/div&gt;<br>  &lt;\/article&gt;<br>&lt;\/section&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">index.js\u30d1\u30b9\u306e\u5909\u66f4<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">lib\/project_name_web\/templates\/layout\/app.eex<br><br>&lt;script type=\"text\/javascript\" src=\"&lt;%= Routes.static_path(@conn, \"\/js\/index.js\") %&gt;\"&gt;&lt;\/script&gt;<br><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Phoenix Project \u4f5c\u6210 npm \u30e2\u30b8\u30e5\u30fc\u30eb\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb $ cd ProjectName\/assets\/node_modules\/$ npm install &#8211;save @babel\/preset-rea [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"saved_in_kubio":false,"footnotes":""},"categories":[54,61,4],"tags":[],"class_list":["post-2729","post","type-post","status-publish","format-standard","hentry","category-phoenix-framework","category-react-js","category-tech"],"_links":{"self":[{"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/2729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2729"}],"version-history":[{"count":21,"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/2729\/revisions"}],"predecessor-version":[{"id":2757,"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/2729\/revisions\/2757"}],"wp:attachment":[{"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blowfish.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}