Supponiamo che la mia app react.js visualizzi le date e vorrei applicare il formato impostato nel browser/sistema operativo del client. Ci sono più componenti che mostrano le date e posso usare un paio di modi per condividere il codice tra loro.React.js: componenti riutilizzabili vs funzioni di utilità di mixin
1.Re-utilizzabili React.js componenti come:
var React = require('react');
module.exports = React.createClass({
render : function(){
if(this.props.value === null || this.props.value===undefined)
return false;
var formattedValue = new Date(this.props.value).toLocaleDateString();
return(
<span>
{formattedValue}
</span>
);
}
});
e quindi utilizzare come loro:
var DateFormatter = require('./../formatters/Date');
<DateFormatter value={invoice.date} />
funzioni 2.Utility condivisi attraverso mixins React.js, cioè:
module.exports = {
renderDate : function(dateValue){
if(dateValue === null || dateValue===undefined)
return false;
var formattedValue = new Date(dateValue).toLocaleDateString();
return(
<span>
{formattedValue}
</span>
);
}
}
e poi basta aggiungere il mixin ad un componente e usare qualcosa come
{this.renderDate(invoice.date)}
Per me sembra che non ci sia molta differenza tra questi 2 approcci per ora. Ma mi piacerebbe sentire l'opinione della comunità sui pro e contro di ciascuna soluzione. TIA!
I mixin sono fondamentalmente ereditari. sono generalmente per i programmatori che non sanno cosa stanno facendo, e in genere si sta solo significativamente meglio di utilizzare le funzioni di base con i parametri. Non preoccuparti del concetto, è solo un effetto collaterale del javascript che ha cose come Object.assign e gli stupidi programmatori di cazzate faranno quando gli strumenti forniti gli permetteranno di fare quello che vogliono. –