That named helper function isn't necessary, so this might be more appropriate:
return <ul>
{this.props.items.map(item => <li>{item}</li>)}
</ul>;
vs. the Angular version:
<ul ng-repeat="item in items">
<li>{{ item }}</li>
</ul>
The Angular template is more readable at the expense of ngRepeat's complexity. Neither example includes Component/directive boilerplate. The directive boilerplate is generally worse, because it requires a separate template file or an ugly template string, knowledge of the directives API itself which is baroque in the extreme, and $scope-wrestling (whereas JSX' scope is the same as JS').
In my opinion reuse of the React component is more straightforward, you explicitly import/require it while in Angular you specify its providing module as an angular.module dependency, which has implications for config block ordering.