質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

2回答

402閲覧

React+Reduxのファイルはどういう順序で見ていけば良いのでしょうか?

dongw

総合スコア119

Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2017/08/16 09:53

編集2017/08/16 10:16

Ruby on RailsにReact+Reduxを導入しようと勉強しています。
reduxの公式を読んで勉強している最中です。

http://redux.js.org/docs/basics/ExampleTodoList.html
こちらの例のindex.jsの記述ですが

import React from 'react' import { render } from 'react-dom' import { Provider } from 'react-redux' import { createStore } from 'redux' import todoApp from './reducers' import App from './components/App' let store = createStore(todoApp) render( <Provider store={store}> <App /> </Provider>, document.getElementById('root') )

idがrootの箇所に
= javascript_pack_tag 'index'
と置いてindex.jsを読み込むと思います。
しかしこのindex.jsを見るに当ってどういう順番で見るべき(読み込まれる)なのでしょうか?

import React from 'react' import { render } from 'react-dom' import { Provider } from 'react-redux' import { createStore } from 'redux'

ここの4行はReact+Reduxを使うための記述?ということで特に気にしていませんが

import todoApp from './reducers' import App from './components/App'

ここからはimportということで先に./reducers/やら./componentsの中が読み込まれるのでしょうか?(importの行が読み込まれた時点で読みに行く?)
それとも呼ばれた時に初めて読み込まれるのでしょうか?

また、importので中括弧ついてる場合とついてない場合がありますが、何が違うのでしょうか?
React+Reduxの概念に初めて触れましたが、どういう感じでまず読んでいけばいいのかすら分からず困惑しています。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

かっこのあるなしは、読み込み先で読み込み対象がどのようにexportされてるかによって決まります。

export default xxx

とdefault指定されてるものは、カッコ無しでimportになります。そうでないものはカッコ必要です。

投稿2017/08/16 11:51

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dongw

2017/08/16 11:54

回答ありがとうございます。 export defaultが指定されているものはカッコなしでimport出来る、ということなのですね。 ということは 基本的に export defaultを指定するのが普通なのでしょうか? そうしていればimport先で毎回カッコを記述しなくて済むということですよね。
退会済みユーザー

退会済みユーザー

2017/08/16 11:57

default指定できるのは一ファイルに1つなので、同じファイルでいろいろexportしてる場合はアレです
dongw

2017/08/16 12:18

なるほど、1ファイルでexportが1つの場合は問題ないものの、複数のexportがある場合は考えなければいけないのですね、ありがとうございます!
guest

0

ベストアンサー

import todoApp from './reducers'

これは./reducers/index.js↓でexportしている部分をtodoAppに代入しているようなことでは?

import { combineReducers } from 'redux' import todos from './todos' import visibilityFilter from './visibilityFilter' const todoApp = combineReducers({ todos, visibilityFilter }) export default todoApp // ←export defaultの部分の変数をimportしたファイルでも使える

importで./redusersと指定すると./redusers/index.jsを読み込んでくれるようです。
以下はどれも同じ意味で読み込んでくれる。

import todoApp from './redusers/index.js'

import todoApp from './redusers/index' .jsを省略できる

import todoApp from './reducers' ファイル名がindex.jsだったらディレクトリ名だけで読み込める

中括弧は、importしたいファイルから、使用したい部分だけを読むこむことができるみたいです。https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import

Reactだったら以下の2つは同じ意味で使用できたりするようです。

//中括弧使用しない import React from 'react' import ReactDOM from 'react-dom' ReactDOM.render( <h1>React</h1>, document.getElementById('root') )
//中括弧使用する import React from 'react' import { render } from 'react-dom' render( <h1>React</h1>, document.getElementById('root') )

投稿2017/08/16 11:35

編集2017/08/16 11:36
saitouakihiro

総合スコア85

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dongw

2017/08/16 11:50

回答ありがとうございます。 中括弧の違いは使用した部分だけを読むことが出来るようにするのですね。 確かに例の場合だと { render } だけimportしていれば記述がシンプルになりますね。 export default todoAppでexportした変数todoAppというのは ``` const todoApp = combineReducers({ todos, visibilityFilter }) ``` こちらで定義したtodoAppという変数がimportした先で使えるということでしょうか? また、./redusers/index.jsは/index.jsの5行目が読まれた時点で一度全部読み込まれるということで合っていますか?
saitouakihiro

2017/08/16 12:00

中括弧は、名前付きexportをimportするときに使うという方が正しい気がします。 http://qiita.com/bmf_san/items/bdb67c7abf4d381cf976 全部という言い方よりかはindex.jsの5行目が読まれた時点でredusers/index.jsのconst todoAppという変数の値が読み込まれているという感じだと思います。
dongw

2017/08/16 12:23

なるほど、qiitaの記事とても参考になりました! ファイルをすべて読む、というよりそのインポート元のファイルの変数を読み込むということなのですね。腑に落ちました。 ありがとうございます!
saitouakihiro

2017/08/16 12:46

中括弧の説明で最初誤解を招く書き方ですみませんでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問