[Vue] ist eine [Javascript Framework|Javascript Frameworks] für das Erstellen und Instantiieren von Oberflächen-Komponenten.

!!!Allgemeines
Am Besten versendet man [Vue] zusammen mit [RequireJS], damit man Komponenten dynamisch laden kann.

!!!Application
Um eine Vue-Applikation zu starten, wird eine bestehendes HTML-Tag verwendet:

{{{
new Vue({
	el: "#vue-root"
});
}}}

!!RequireJS
Zusammen mit [RequireJS] sieht es dann so aus:

{{{
define(["vue"], function(Vue) {
	return new Vue({
		el: "#vue-root"
	});
});
}}}

!!!Components
Komponenten werden mit Vue.component definiert:

{{{
define(["vue"], function(Vue) {
	return Vue.component("simple-component", {
		props: {
			value: String
		},
		template: '<div>{{value}}</div>'
	});
});
}}}

!!!Reactivity
[Vue] implementiert standardmäßig Reactivity. Änderungen in Properties führen zu Änderungen in der View (dem DOM-Tree). Allerdings gibt es einige Besonderheiten.

!!Simple Property
Einfache Properties, etwa String, Number, Boolean sind nicht reaktiv, da das zugrundeliegende Objekt nicht beobachtet werden kann. Die Reaktivität kann programmatisch vorgenommen werden.

Child:
{{{
methods: {
	_visible: function(visible) {
		this.$emit("update:visible", visible);
	}
}
}}}

Parent:
{{{
<dialog-panel :visible.sync="visible">[...]</dialog-panel>
}}}

!!!Links
* [Awesome Vue Komponenten|https://github.com/vuejs/awesome-vue]