我一直在使用Angular 1,现在开始学习React,但无法弄清楚两者之间的主要区别。看起来像React是关于创建组件的,但是我们不能在Angular中使用指令来做同样的事情吗?我仍然处于初学者的反应阶段(通过codechool学习)。Angular 1 vs React
如果有人能够提供一个案例并告诉我如何使用角1来解决它,然后作出反应,这将是非常有益的。
以下是我迄今为止在React中所做的工作(创建一个可以显示Comment组件的评论的CommentBox组件)。例如,我怎么能在角度1中做到这一点,以便我可以看到差异。
CommentBox组件:
class CommentBox extends React.Component {
render() {
const comments = this._getComments() || [];
return(
<div className="comment-box">
<h3>Comments</h3>
<div className="comment-list">
{comments}
</div>
</div>
);
}
_getComments() {
const commentList = [
{ id: 1, author: 'Clu', body: 'Just say no to love!', avatarUrl: 'images/default-avatar.png' },
{ id: 2, author: 'Anne Droid', body: 'I wanna know what love is...', avatarUrl: 'images/default-avatar.png' }
];
return commentList.map((comment) => {
return (<Comment
author={comment.author}
body={comment.body}
avatarUrl={comment.avatarUrl}
key={comment.id} />);
});
}
}
注释组件:
class Comment extends React.Component {
render() {
return(
<div className="comment">
<img src={this.props.avatarUrl} alt={`${this.props.author}'s picture`} />
<p className="comment-header">{this.props.author}</p>
<p className="comment-body">
{this.props.body}
</p>
</div>
);
}
}
谢谢你提供的角度版本。所以看起来主要的区别在于这种虚拟dom的反应必须提供。您提供的角码1代码看起来更容易做出反应。 –
@ user5694093是的,它有所不同,但是Angular有更多的选择/已知路径来完成常用的事情。通常情况下,您不需要对角度做任何事情负责,并且框架似乎更偏向于构建默认值(主要用于使用$ http或$ resource与API进行通信以及有关数据模型和更新视图的方式被处理)。在那里存在权衡,更容易完成最常见的事情,但是如果你不小心创建了一个视图来执行这个视图,那么这个视图会非常难以确定框架正在为你“做什么” – shaunhusain