(function($) {
// Global import
})(jQuery);
Encapsulation
Slide 28
Slide 28 text
var Counter = (function () {
var counter = 0;
function increment() {
counter++;
}
return {
increment: increment,
};
})();
Counter.increment();
Exposing a public interface
Slide 29
Slide 29 text
var Counter = (function () {
var counter = 0;
function increment() {
counter++;
}
return {
increment: increment,
};
})();
Counter.increment();
Exposing a public interface
Private implementation
Slide 30
Slide 30 text
var Counter = (function () {
var counter = 0;
function increment() {
counter++;
}
return {
increment: increment,
};
})();
Counter.increment();
Exposing a public interface
Public interface
Private implementation
Slide 31
Slide 31 text
// counter.js
var counter = 0;
function increment(){
counter++;
}
module.exports = {
increment: increment
}
CommonJS
Slide 32
Slide 32 text
// counter.js
var counter = 0;
function increment(){
counter++;
}
module.exports = {
increment: increment
}
CommonJS
// main.js
var counter = require("./counter.js");
counter.increment();
Slide 33
Slide 33 text
CommonJS
● Standard for NodeJS
● Synchronous
● Build step required
for browser support
import styles from './component.css';
import template from './component.html';
import image from './logo.png';
var img = document.createElement('img');
img.src = image;
Importing other assets
Slide 134
Slide 134 text
Inlining all static assets.
Component
Component
Component
Component
bundle.js
Slide 135
Slide 135 text
Create separate bundles.
Component
Component
Component
Component
bundle.js
bundle.css
logo.png