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