如果我想使用reactjs制作不是单个页面的Web应用程序。 我应该将所有反应代码编译成单个文件并将其加载到应用程序的所有页面上,然后使用我公开的函数来渲染必要的组件?在没有路由器组件的情况下使用反应
例如HTML文件index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Clock from './Clock';
import HelloWorld from './HelloWorld';
import OtherComponent from './OtherComponent';
const APPS = {
Clock,
HelloWorld,
OtherComponent
};
const MyReactRender = react => {
let component = react.getAttribute('data-react');
let App = APPS[component];
if(App != undefined) {
ReactDOM.render(<App />, document.getElementById(component));
}
}
document.querySelectorAll('[data-react]').forEach(MyReactRender);
我只想用'if(document.getElementById('Clock')){/ *激活反应组件* /}' –
感谢您的输入。 但是,使用这种方法是否正确,因为应用程序可以增长很多? – MrGilbertMan
不,这绝对不是一个推荐的做法,但唯一真正的缺点是捆绑包的大小和ifs的数量不断增加。更好的方法是使用webpack捆绑应用程序的不同部分,并只将它们加载到每个不同的页面中 –