Reactjs 在标准HTML旁边使用react.js

Reactjs 在标准HTML旁边使用react.js,reactjs,Reactjs,我不知道我在这方面是否过于迟钝,或者是否缺少一个关键概念,但即使我认为我“得到”了react.js作为一个框架,但在渲染方面,我有一点不连贯 我见过的每个例子都是这样的: var myComponent = React.createClass({ // ... }); React.render(<myComponent/>, 'containerID'); <li> <span>Item Name</span> <img

我不知道我在这方面是否过于迟钝,或者是否缺少一个关键概念,但即使我认为我“得到”了react.js作为一个框架,但在渲染方面,我有一点不连贯

我见过的每个例子都是这样的:

var myComponent = React.createClass({
    // ...
});

React.render(<myComponent/>, 'containerID');
<li>
  <span>Item Name</span>
  <img src="itemImage.jpg"/>
  <LikeButton/>
</li>
从呈现列表项的代码中,如何为每个
  • 添加LikeButton组件?我可以在此处插入什么代码:

    <li>
        <span>Item Name</span>
        <img src="itemImage.jpg"/>
        <whatgoeshere???>
    </li>
    
  • 项目名称

  • 嗯,React.js在单页应用程序上运行得很好。也就是说,您的项列表(
    )应该是另一个React组件,我们称之为ItemList,这样您就可以将类似的组件作为Mixin,然后将Mixin包含在您想要的任何其他组件(ItemList)中。然后只需要将ItemList组件附加到HTML中

    如果项目列表已经是一个React组件,那么您需要做的就是在每个项目中使用jsx表示法,如下所示:

    var myComponent = React.createClass({
        // ...
    });
    
    React.render(<myComponent/>, 'containerID');
    
    <li>
      <span>Item Name</span>
      <img src="itemImage.jpg"/>
      <LikeButton/>
    </li>
    
  • 项目名称
  • 编辑

    根据OP评论:

    因此,如果
    是纯HTML,则绝对不能使用JSX语法添加like按钮或类似于Angular中的任何操作。 我仍然认为最好的方法是将项目列表提取到另一个组件中,但是如果您想继续使用它,我可以想象的唯一丑陋的方法是在每个div中有另一个html标记,比如一个div,然后在加载DOM时注入React组件,类似这样的

    <li>
      <span>Item Name</span>
      <img src="itemImage.jpg"/>
      <div class="likeAnchor"></div>
    </li>
    
    <script type="text/babel">
      ReactDOM.render(<LikeButton/>, document.getElementByClass('likeAnchor'));
    </script>
    
  • 项目名称
  • ReactDOM.render(,document.getElementByClass('likeAnchor');

    可能会迭代所有的.likeAnchor元素。

    嗯,React.js在单页应用程序上运行得很好。也就是说,您的项列表(
    )应该是另一个React组件,我们称之为ItemList,这样您就可以将类似的组件作为Mixin,然后将Mixin包含在您想要的任何其他组件(ItemList)中。然后只需要将ItemList组件附加到HTML中

    如果项目列表已经是一个React组件,那么您需要做的就是在每个项目中使用jsx表示法,如下所示:

    var myComponent = React.createClass({
        // ...
    });
    
    React.render(<myComponent/>, 'containerID');
    
    <li>
      <span>Item Name</span>
      <img src="itemImage.jpg"/>
      <LikeButton/>
    </li>
    
  • 项目名称
  • 编辑

    根据OP评论:

    因此,如果
    是纯HTML,则绝对不能使用JSX语法添加like按钮或类似于Angular中的任何操作。 我仍然认为最好的方法是将项目列表提取到另一个组件中,但是如果您想继续使用它,我可以想象的唯一丑陋的方法是在每个div中有另一个html标记,比如一个div,然后在加载DOM时注入React组件,类似这样的

    <li>
      <span>Item Name</span>
      <img src="itemImage.jpg"/>
      <div class="likeAnchor"></div>
    </li>
    
    <script type="text/babel">
      ReactDOM.render(<LikeButton/>, document.getElementByClass('likeAnchor'));
    </script>
    
  • 项目名称
  • ReactDOM.render(,document.getElementByClass('likeAnchor');

    可能迭代所有.likeAnchor元素。

    react组件链的起始位置不是问题所在。问题是如何任意地将react组件注入到普通的旧HTML中。我不是在这里的单页应用程序用例中工作。在思考了一些之后,我沿着您的编辑中提到的路径前进。我认为React可能应该为内联元素添加一个自动渲染器,就像Angular处理指令一样,例如(
      • )React组件链开始的地方不是问题所在。问题是如何任意地将react组件注入到普通的旧HTML中。我不是在这里的单页应用程序用例中工作。在思考了一些之后,我沿着您的编辑中提到的路径前进。我认为React应该像Angular处理指令那样为内联元素添加自动渲染器,例如(