Rob Bosman
<mx:VBox horizontalAlign="right" verticalAlign="top" height="100%">
<mx:Label text="Profielschets"
height="{profielGUI.height}" />
<mx:Label text="Persoonlijke eigenschappen"
height="{pers_eig_GUI.height}" />
<mx:Label text="Profielschets (aanvullend)"
height="{vaardighedenGUI.height}" />
<mx:Label text="Interesses"
height="{interessesGUI.height}" />
</mx:VBox>
<mx:VBox width="100%" height="100%">
<gui:XmlTextArea restClient="{restClient}"
objectXml="{getProfielXml(cvXml, CVtool.selectedLocaleInfo)}"
propertyName="profiel"
width="100%" height="40%" id="profielGUI" />
<gui:XmlTextArea restClient="{restClient}"
objectXml="{getProfielXml(cvXml, CVtool.selectedLocaleInfo)}"
propertyName="persoonlijke_eigenschappen"
width="100%" height="30%" id="pers_eig_GUI" />
<gui:XmlTextArea restClient="{restClient}"
objectXml="{getProfielXml(cvXml, CVtool.selectedLocaleInfo)}"
propertyName="vaardigheden"
width="100%" height="20%" id="vaardighedenGUI" />
<gui:XmlTextArea restClient="{restClient}"
objectXml="{getProfielXml(cvXml, CVtool.selectedLocaleInfo)}"
propertyName="interesses"
width="100%" height="10%" id="interessesGUI" />
</mx:VBox><Stack>
<Text variant="xxLarge">Welkom bij de <Title height="24em"/></Text>
<Pivot linkSize={PivotLinkSize.large}>
<PivotItem itemIcon="Emoji" headerText="Personalia" itemCount={42}>
<Personalia/>
</PivotItem>
<PivotItem itemIcon="Emoji2" headerText="Profiel">
<TextField label="Profielschets"
multiline
autoAdjustHeight
value={props.profielschets}
onChange={props.onChangeProfielschets}/>
<TextField label="Persoonlijke eigenschappen"
multiline
autoAdjustHeight
value={props.persoonlijkeEigenschappen}
onChange={props.onChangePersoonlijkeEigenschappen}/>
<TextField label="Interesses"
multiline
autoAdjustHeight
value={props.interesses}
onChange={props.onChangeInteresses}/>
</PivotItem>
</Pivot>
<Stack.Item align="center">
<PrimaryButton text="Afmelden" onClick={props.requestLogout}/>
</Stack.Item>
</Stack>Back-end
Front-end
EcmaScript ES5 / 6 / 7
Babel transpiler
CSS / Sass (SCSS)
Package manager
Gulp
Webpak
var _0x10d9=['#msg','html','log','Hello\x20world!'];(function(_0x5c4d6e,_0x1aa57b){var _0xe6bb66=function(_0x36c08b){while(--_0x36c08b){_0x5c4d6e['push'](_0x5c4d6e['shift']());}};_0xe6bb66(++_0x1aa57b);}(_0x10d9,0x83));var _0x42a6=function(_0x2deb60,_0x33e65c){_0x2deb60=_0x2deb60-0x0;var _0x4fd15f=_0x10d9[_0x2deb60];return _0x4fd15f;};const m={'t':_0x42a6('0x0')};$(_0x42a6('0x1'))[_0x42a6('0x2')](m['t']);console[_0x42a6('0x3')](m);
// My message:
const message = {
text: 'Hello world!',
}
$('#msg').html(message.text);
console.log(message);Javascript
Minified
Obfuscated
const message={text:"Hello world!"};$("#msg").html(message.text),console.log(message);Angular
React
Vue
lit-html
Ember
Meteor
Polymer
Backbone
KnockoutJS
Aurelia
Mithril
Ant Design
Material-UI
Shards
Bootstrap
UI Fabric
Argon Design System
Semantic UI
React Desktop
KendoReact
Back-end
3 layers (backend)
microservices
Front-end
UI, State, Logic, HTTP
chaos?
Redux!
var obj = {
anArray: [10, 11, 12],
aString: "dertien"
};
function storeText(text) {
return {
type: "STORE_TEXT",
payload: text
};
}
// EC6: classes in Javascript!
class MyComponent extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<TextField value={this.props.myValue}, onChange={this.props.onChange}/>
);
}
}
function mapStateToProps(state) {
return {
myValue: state.someValue
};
}
function mapDispatchToProps(dispatch) {
return {
onChange: function(event) { dispatch(storeText(event.target.value)); }
};
}
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent)const storeText = (text) => ({
type: "STORE_TEXT",
payload: text
});
const MyComponent = (props) => ({
<TextField value={props.myValue}, onChange={props.onChange}/>
});
const select = (state) => ({
myValue: state.someValue
});
const mapDispatchToProps = (dispatch) => ({
onChange: (event) => dispatch(storeText(event.target.value))
});
export default connect(select, mapDispatchToProps)(MyComponent)