使用ReactJS与AngularJS

前端之家收集整理的这篇文章主要介绍了使用ReactJS与AngularJS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用ReactJS与AngularJS,但它没有解决。有人可以请我指导我们如何将他们凝聚在一起?还是请指出这里是什么?

我的index.html如下:

<!DOCTYPE html>
<html data-ng-app="MyApp">
    <head>
        <title>My Test</title>
        <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body data-ng-controller="Ctrl1">
        <div id="myDiv">
            <button id="btn1" data-ng-click="clickMe()">Click Me</button>
        </div>
        <script src="http://fb.me/react-0.8.0.js"></script>
        <script src="http://fb.me/JSXTransformer-0.8.0.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.js"></script>
        <script type="text/jsx" src="reactExample.js"></script>
        <script src="angularExample.js"></script>
    </body>
</html>

这是我的reactExample.js的写法:

/**
  * @jsx React.DOM
  */
var testMy = React.createClass({
    render: function(){
        return ( <p>Hello</p>)
    }
});

而我的angularExample.js如下所示:

var myapp = angular.module('MyApp',[]);
myapp.controller('Ctrl1',['$scope',function($scope){
    $scope.clickMe = function(){
        alert("Clicked!");
        React.renderComponent(testMy,elem[0]);
    }
}]);

不显示任何东西(除了警报)。我期望看到’Hello’打印在那里,但它在控制台中引发以下错误

Error: Invariant Violation: prepareEnvironmentForDOM(...): Target container is not a DOM element

任何帮助将不胜感激。

已经@Simon史密斯提到为什么错误发生在React.renderComponent期望第二个参数,但是您在控制器中播放DOM操作的方式是不合适的。在AngularJs中DOM操作应该是指令。让我们看看它是如何

Facebook’s React vs AngularJS: A Closer Look博客

React components are far more powerful than Angular templates; they should be compared with Angular’s directives instead.

这个博客底部使用React和AngularJS在一起,你可以看到角度和反应如何一起玩。

react网站

React components implement a render() method that takes input data and returns what to display.

在angularjs中,组件由指令呈现

看到这个plunker我在哪里集成anglejs并做出反应。

在react-example.js中,我创建了虚拟dom元素

var Hello = React.createClass({
  render: function() {
    return React.DOM.div({},'Hello ' + this.props.name);
  }
});

而myMessage指令渲染虚拟dom

React.renderComponent(Hello({name: scope.myModel.message}),document.getElementById('example'));

虚拟dom名称属性将与scope.myModel.message绑定在一起

猜你在找的Angularjs相关文章