Youtube
Downloader + Converter
Beats Per Minute (BPM)
Detector
Lien Youtube
Files
Simple Http Server
Lien Youtube
Container de state pour des applications Javascript
http://redux.js.org/
Goodies pour utiliser Redux dans son application React
http://redux.js.org/docs/basics/UsageWithReact.html
Fournit des structures de données qui ne sont pas mutables
https://facebook.github.io/immutable-js/
{
todos: [{
text: 'Voir que Tyrion est mort
dans le GOT E03',
completed: true
}, {
text: 'Avoir gâché la surprise
aux retardataires',
completed: false
}]
}Voir que Tyrion est mort dans le GOT E03
Avoir gâché la surprise aux retardataires
<=>
State : du JSON
Application
Une fonction qui renvoie une action
{
type: ADD_TODO,
text: 'Préparer des slides'
}const addTodo = (text) => ({
type: 'ADD_TODO',
text
});(previousState, action) => newStateUne fonction pure qui prend l'ancien state (complet) et une action, et renvoie le nouveau state (complet)
import { List } from 'immutable';
const reducer = (state = List(), action) => {
switch (action.type) {
case ADD_TODO:
return state.push(
{
text: action.text,
completed: false,
}
);
default:
return state;
}
};
export default reducer;import { createStore } from 'redux'
import reducers from './reducers'
let store = createStore(reducers);
render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)Composant 1
Composant 2
Composant 3
State
State
State
Props
Props
Container 1
Composant 2
Container 3
Props
Props
State
State
Props
Props
const mapStateToProps = (state, ownProps) => {
return {
active: ownProps.filter === state.visibilityFilter
}
}
const mapDispatchToProps = (dispatch, ownProps) => {
return {
onClick: () => {
dispatch(setVisibilityFilter(ownProps.filter))
}
}
}
const FilterLink = connect(
mapStateToProps,
mapDispatchToProps
)(Link)