【发布时间】:2015-05-22 16:45:59
【问题描述】:
假设我的 react.js 应用程序将显示日期,我想应用在客户端浏览器/操作系统中设置的格式。有多个显示日期的组件,我可以使用几种方法在它们之间共享代码。
1.可重用的 React.js 组件,例如:
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>
);
}
});
然后像这样使用它们:
var DateFormatter = require('./../formatters/Date');
<DateFormatter value={invoice.date} />
2.通过 React.js mixins 共享的实用函数,即:
module.exports = {
renderDate : function(dateValue){
if(dateValue === null || dateValue===undefined)
return false;
var formattedValue = new Date(dateValue).toLocaleDateString();
return(
<span>
{formattedValue}
</span>
);
}
}
然后只需将 mixin 添加到组件并使用类似的东西
{this.renderDate(invoice.date)}
在我看来,这两种方法目前似乎没有太大区别。但我很想听听社区对每种解决方案的优缺点的看法。蒂亚!
【问题讨论】:
-
mixins 基本上是继承。它们通常适用于不知道自己在做什么的程序员,并且通常您在使用带参数的基本函数方面要好得多。不用担心这个概念,这只是 javascript 具有 Object.assign 之类的东西的副作用,而愚蠢的废话程序员在提供让他们为所欲为的工具时会这样做。
标签: javascript architecture reactjs mixins