https://forum.vuejs.org/t/vue2-async-components-examples/2066/4
호환성을 위해 일반적인 방식으로 만들어진 함수 사용
function loadComponent(opts) {
var script = document.createElement('script');
opts.onLoad = opts.onLoad || function() {};
opts.onError = opts.onError || function() {};
script.src = opts.path;
script.async = true;
script.onload = function() {
var component = Vue.component(opts.name);
if (component) {
opts.onLoad(component);
} else {
opts.onError();
}
};
script.onerror = opts.onError;
document.body.appendChild(script);
}
Vue에서 dynamic component와 붙여서 사용할때, 이런 식으로:
new Vue({
...
components: {
none: { template: "<div>None</div>" },
dynamicComponent: function(resolve, reject) {
loadComponent({ name: "dynamic-component", path: "static/js/dynamic_component.js", onLoad: resolve, onError: reject})
}
},
...
dynamic_components.js 에는,
Vue.component("dynamic-component, {
template: ...
})
와 같은 Vue component 선언 문이 들어있으면 된다.
반응형
'Programming > Javascript' 카테고리의 다른 글
CodeMirror gutter linenumber가 제대로 안나올때 (0) | 2016.07.27 |
---|---|
SVG 를 Canvas로 옮기기전에 유의해야 할점 (0) | 2015.03.19 |
객체지향 자바스크립트 소개 (0) | 2015.03.18 |
Windows 환경에서 nodejs module을 npm으로 설치했을때 (0) | 2012.02.08 |