質問: 標題通りです。 scriptタグ内ではexport deault内に処理の記述を書いていますが(export deault内で設定した変数の値によってtemplateにおいて該当する変数にも設定が反映されたり)、export deaultはメイン処理と同じ認識でいいんでしょうか? (vue内で勝手にimportして勝手にいい感じにtemplateの変数に設定してくれている...?)
回答: 不明な点が、Javascriptのモジュールの仕様 (import,export)のことなのか Vueのコンポーネントのことなのかはっきりしないのでモジュールについて既にご存知であれば、読み飛ばしてください。 ### Javascriptのモジュール(import/export) 従来のJavascriptには他の言語(C++,C#,java,phpなど)のようなモジュールという概念がありません。 export/importという構文はES2015という仕様からこれをjavascriptでも可能にして、機能の単位ごとに分割した.jsファイルを他のモジュールから呼び出すことができるようにしたものです。 他のモジュールに機能を公開するための構文が `export`です。ひとつのjsファイルに複数の変数や関数がある場合は、公開するものを選んでそれぞれに `export`を付けます。またexportするものには名前がついている必要があります。 したがって関数をexportする場合も、以下のように`hello`という変数に入れる必要があります。 ``` export var hello = function () { alert('hello'); }; ``` このやり方を **名前付きエクスポート** といいます。 これに対して、モジュールに対して一つだけデフォルトとしてエクスポートするものを定義できます。 これを **デフォルトエクスポート** と言って、この時は変数名を必要としません。 上記のコードをデフォルトエクスポートにすると以下のようになります。 ``` export default function () { alert('hello'); }; ``` 【参考】 JavaScriptにおけるモジュールとimport/exportの使い方 ### Vue.jsのコンポーネント Vue.jsで再利用可能な部品を**コンポーネント**として用意しておくことで、複数の箇所で使用可能なVueのソースを一箇所で管理できて便利です。 この時に上記のモジュールの仕組みを利用しています。 vueの場合、コンポーネントはvueのインスタンスをオブジェクトとして定義されるので 以下のように **{}** で囲まれているものをデフォルトエクスポートすることができます。 ``` export default { template: 'こんにちは{{name}}さん', data: ()=> { return { name: "太郎" } }, } ``` このようにすることでメインのvueインスタンス作成時にその中で定義されたかのように使用することができます。(厳密にはは親子の関係があるのでデータの受け渡しなど考慮が必要ですが) ``` import HelloComp from 'helloComp.vue' new Vue({ el: '#app', components: { 'hello-component': HelloComp, } }) ``` 【参考】 Vuejsガイド-コンポーネントの基本