我一直在玩React,到目前为止我真的很喜欢它.我正在使用NodeJS构建一个应用程序,并希望将React用于整个应用程序中的一些交互式组件.我不想让它成为单页应用程序.
我还没有在网上找到任何回答以下问题的内容:
如何在多页应用程序中拆分或捆绑我的React组件?
目前我的所有组件都在一个文件中,即使我可能永远不会在应用程序的某些部分加载它们.
到目前为止,我正在尝试使用条件语句通过搜索React将呈现的容器的ID来呈现组件.我不是100%确定React的最佳实践.它看起来像这样.
if(document.getElementById('a-compenent-in-page-1')) {
React.render(
<AnimalBox url="/api/birds" />,
document.getElementById('a-compenent-in-page-1')
);
}
if(document.getElementById('a-compenent-in-page-2')) {
React.render(
<AnimalBox url="/api/cats" />,
document.getElementById('a-compenent-in-page-2')
);
}
if(document.getElementById('a-compenent-in-page-3')) {
React.render(
<AnimalSearchBox url="/api/search/:term" />,
document.getElementById('a-compenent-in-page-3')
);
}
Run Code Online (Sandbox Code Playgroud)
我仍在阅读文档,但还没有找到我需要的多页面应用程序.
提前致谢.
我正在Lynda.com上关于新DOM事件模型的教程.
这是我正在使用的代码.
function addEventHandler(oNode, sEvt, fFunc, bCapture){
if (typeof (window.event) != "undefined")
oNode.attachEvent("on" + sEvt, fFunc);
else
oNode.addEventListener(sEvt, fFunc, bCapture);
}
function onLinkClicked(e){
alert('You clicked the link');
}
function setUpClickHandler(){
addEventHandler(document.getElementById("clickLink"), "click", onLinkClicked, false);
}
addEventHandler(window, "load", setUpClickHandler, false);
Run Code Online (Sandbox Code Playgroud)
我将它添加到此链接上的click事件
<a href="#" title="click me" id="clickLink">Click Me!</a>
Run Code Online (Sandbox Code Playgroud)
它在IE,Firefox,Opra中运行得非常好,但在Chrome中却不行.我环顾四周,但还没找到具体的东西.一些类似的问题,但它没有回答我的问题.
我从Chrome控制台收到以下错误消息
Uncaught TypeError: Object [object HTMLAnchorElement] has no method 'attachEvent'
Run Code Online (Sandbox Code Playgroud)
任何sugestions或答案的链接.
提前致谢.