Javascript Module export import
別ファイルのJavascript関数を実行する場合
①HTML経由で別ファイルを読み込む方法
②Module化Javascriptファイルを読み込む方法
がある。(おおまかに)
①はHTMLに
<script src='./js/app.js'></script> <script src='./js/hoge.js'></script>
と記述してhoge.jsからapp.jsの関数を実行する。
デメリットは、scriptタグの記述順番を意識しないといけない。複数ファイルで、同じ名前の関数が存在してしまう場合、意図しない関数が呼ばれる可能性がある。
②のModule化した場合は①のデメリットはなくなる。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type="module" src="./js/sample01.js"></script> <script type="module" src="./js/sample02.js"></script> <title>Document</title> </head> <body> TEST </body> </html>
// 変数宣言にexportを付けることが可能 export const hogeCount = 99; export var hogeMaruCount = 1; export let hogeBatsuCount = 2; // export{} で既に宣言されている変数をexportすることが可能 const yakiniku = 'umai'; const yakisoba = 'tanoshii' export { yakiniku, // asで名前の変更も可能 yakisoba as shioyakisaba } // 関数もexportするこが可能 export function getHogeData(){ console.log('hoge'); } // クラスもexportすることが可能 export class YakinikuClass{ constructor(){ console.log('tabehoudai'); } }
// import{}の中にexportされている変数、関数を指定してimportする方法 import { getHogeData, hogeCount, yakiniku} from "./sample01.js"; // * as でexportされているものをすべてimportする方法 import * as Hoge from "./sample01.js"; // Hoge.で呼び出し可能 Hoge.getHogeData(); var gogogo = () =>{ console.log(Hoge.hogeCount); console.log(Hoge.yakiniku); }