小编Jos*_*llo的帖子

在多页面应用中使用React

我一直在玩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)

我仍在阅读文档,但还没有找到我需要的多页面应用程序.

提前致谢.

javascript node.js reactjs

111
推荐指数
4
解决办法
7万
查看次数

addEventListener无法在Chrome中运行

我正在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或答案的链接.

提前致谢.

javascript dom google-chrome javascript-events

7
推荐指数
1
解决办法
1万
查看次数