第一次学习ReactJS,跟随官方文档,学习组件是如何工作的,现在我想连接websockets,麻烦开始了。为什么这很难实现?
// ReactJS
ReactDOM.render(
<div className="media">
<img className="media-figure" src={"kitten.jpg"} width="48" height="48" />
<p className="media-body">Hello</p>
</div>,
document.getElementById('chat-list')
);
// Socket connection
socket = new WebSocket("ws://" + window.location.host + "/echo");
socket.onmessage = function(e) {
alert(e.data);
}
socket.onopen = function() {
socket.send("hello world");
}
// Call onopen directly if socket is already open
if (socket.readyState == WebSocket.OPEN) socket.onopen();
我想要的是,当onmessage
我需要渲染media
的div。
需要在socket.onmessage
回调中调用ReactDOM.render
方法
对于更大的应用程序,我建议使用React团队推荐的基于flux的架构。最流行的实现之一是Redux,它非常容易学习和使用。你可以在Flux的Overview页面找到更多信息(我推荐他们的视频):https://facebook.github.io/flux/docs/overview.html