Browser-native ES6 modules¶
Browser-native ES6 modules enable the direct execution of [[JavaScript]] module code within the browser environment, eliminating the need for a build step or transpilation tools like Babel during the development process^[600-developer__frontend__vue__vue-module.md, 600-developer-frontend-vue-vue-module.md]. This approach allows developers to write modern JavaScript using standard import and export statements that are natively supported by the browser^[600-developer__frontend__vue__vue-module.md].
Usage¶
To use native modules, the script tag in the HTML file must be explicitly assigned the type module^[600-developer__frontend__vue__vue-module.md, 600-developer-frontend-vue-vue-module.md]. This distinction is crucial, as it tells the browser to treat the referenced script as an ECMAScript module rather than a standard script^[600-developer-frontend-vue-vue-module.md].
For example, when loading a Vue application and a component, the HTML would include:
<script type="module" src="SingleFileComponent.js"></script>
<script type="module" src="app.js"></script>
Integration with Vue.js¶
Native modules are particularly useful for developing applications like [[Vue.js]] without a complex toolchain^[600-developer-frontend-vue-vue-module.md]. Instead of using Single File Components (.vue files) that require a bundler, developers can define components in plain JavaScript files using the export default syntax^[600-developer-frontend-vue-vue-module.md].
The main application file (e.g., app.js) can then import these components directly:
import SingleFileComponent from './SingleFileComponent.js';
new Vue({
el: '#app',
components: {
SingleFileComponent
}
});
This method facilitates a modular code structure where the component logic and data are defined in separate files but loaded directly by the browser^[600-developer-frontend-vue-vue-module.md].
Sources¶
^[600-developer-frontend-vue-vue-module.md]
Related Concepts¶
- [[JavaScript]]
- [[Vue.js]]
- [[ES6]]
- Import/Export syntax