【发布时间】:2015-10-01 23:07:51
【问题描述】:
我目前正在从 Angular 路由和客户端渲染更改为 React 和 Flux 以进行同构构建。我刚刚开始学习 React,所以请耐心等待。
这是我的问题。要呈现一个简单的列表,它应该是这样的。
React 中的 HTML、组件和渲染:
<!--html-->
<div id="mount-point"></div>
<script type="text/jsx">
//component
var List = React.createClass({
getInitialState: function(){
return {
items: [
"Apples",
"Broccoli",
"Chicken",
"Duck",
"Eggs",
"Fish",
"Granola",
"Hash Browns"
]
}
},
render: function(){
return (
<ul>
{
this.state.items.map(function(item) {
return <li key={item}>{item}</li>
})
}
</ul>
)
}
});
//render
React.render(<List/>, document.getElementById('mount-point'));
</script>
或者在 Angular 中,使用控制器和 HTML:
<script>
//controller
app.controller("MyController", ["$scope", function($scope){
$scope.items = [
"Apples",
"Broccoli",
"Chicken",
"Duck",
"Eggs",
"Fish",
"Granola",
"Hash Browns"
]
}]);
</script>
<!--html-->
<ul>
<li ng-repeat="item in items">{{item}}</li>
</ul>
现在对我来说,Angular 代码看起来更短且更易读。注入数据的 HTML 不会被 javascript 代码渗透。我并不是要开始一场 React 与 Angular 的辩论。相反,我想知道是否有一种方法可以结合两者的最佳特性?即具有来自 React 的有状态组件概念,但不是在 JSX 中使用原始 javascript,而是使用 Angular 的 ng-repeat 之类的东西。如果没有,还有其他方法可以在我的示例中编写JSX 吗?
【问题讨论】:
标签: javascript html angularjs reactjs react-jsx