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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

1回答

14430閲覧

vue.jsのvueファイル内に記述する[export deault]って何ですか?

damonon

総合スコア13

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

1グッド

6クリップ

投稿2018/06/07 07:38

標題通りです。

scriptタグ内ではexport deault内に処理の記述を書いていますが(export deault内で設定した変数の値によってtemplateにおいて該当する変数にも設定が反映されたり)、export deaultはメイン処理と同じ認識でいいんでしょうか?
(vue内で勝手にimportして勝手にいい感じにtemplateの変数に設定してくれている…?)

reud👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

不明な点が、Javascriptのモジュールの仕様 (import,export)のことなのか Vueのコンポーネントのことなのかはっきりしないのでモジュールについて既にご存知であれば、読み飛ばしてください。

Javascriptのモジュール(import/export)

従来のJavascriptには他の言語(C++,C#,java,phpなど)のようなモジュールという概念がありません。
export/importという構文はES2015という仕様からこれをjavascriptでも可能にして、機能の単位ごとに分割した.jsファイルを他のモジュールから呼び出すことができるようにしたものです。

他のモジュールに機能を公開するための構文が exportです。ひとつのjsファイルに複数の変数や関数がある場合は、公開するものを選んでそれぞれに exportを付けます。またexportするものには名前がついている必要があります。
したがって関数をexportする場合も、以下のようにhelloという変数に入れる必要があります。

js

1export var hello = function () { 2 alert('hello'); 3};

このやり方を 名前付きエクスポート といいます。

これに対して、モジュールに対して一つだけデフォルトとしてエクスポートするものを定義できます。
これを デフォルトエクスポート と言って、この時は変数名を必要としません。
上記のコードをデフォルトエクスポートにすると以下のようになります。

js

1export default function () { 2 alert('hello'); 3};

【参考】
JavaScriptにおけるモジュールとimport/exportの使い方

Vue.jsのコンポーネント

Vue.jsで再利用可能な部品をコンポーネントとして用意しておくことで、複数の箇所で使用可能なVueのソースを一箇所で管理できて便利です。
この時に上記のモジュールの仕組みを利用しています。

vueの場合、コンポーネントはvueのインスタンスをオブジェクトとして定義されるので
以下のように {} で囲まれているものをデフォルトエクスポートすることができます。

js

1export default { 2 template: '<div>こんにちは{{name}}さん</div>', 3 data: ()=> { 4 return { 5 name: "太郎" 6 } 7 }, 8}

このようにすることでメインのvueインスタンス作成時にその中で定義されたかのように使用することができます。(厳密にはは親子の関係があるのでデータの受け渡しなど考慮が必要ですが)

js

1import HelloComp from 'helloComp.vue' 2new Vue({ 3 el: '#app', 4 components: { 5 'hello-component': HelloComp, 6 } 7})

【参考】
Vuejsガイド-コンポーネントの基本

投稿2018/06/07 16:43

euledge

総合スコア2404

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

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

damonon

2018/10/22 09:11

お礼が遅くなって失礼いたしました。。 大変分かりやすい説明で納得すことができました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問