reactjs - 我可以阻止在 React App 中的服务器端呈现某些路由吗
问题描述
我将为我的 react 应用程序使用服务器端渲染来改进网站的 SEO。因此,让一些页面在服务器上呈现对我来说很重要。但是,我不想让其余页面(嵌套路由)在服务器端呈现。我可以同时使用不同的路由(和路由的配置)进行客户端和服务器端渲染吗?
解决方案
使用不同的路由器配置 - 由于 html 未匹配,您将收到反应警告。
要解决此问题,您可以将路由器切换为以下内容:
import React from 'react';
import { Route } from 'react-router-dom';
class RouterHandler extends React.Component {
constructor(props) {
super(props);
this.state = {
isShow: false,
};
}
componentDidMount() {
this.setState({
isShow: true,
});
}
render() {
const { isShow } = this.state;
const { component, ...props } = this.props;
if (isShow) {
return <Route {...props} component={component} />;
}
return <div>Loading...</div>;
}
}
<Router>
并在里面使用它而不是你<Switch>
这将起作用,因为componentDidMount
仅在客户端调用。
使用代码分块用户不会看到差异。
推荐阅读
- reactjs - 在反应高阶函数中初始化时,Axios拦截器不起作用
- opencart - (Opencart)如何在函数中加载控制器而不用该函数破坏 ajax?
- r - h2o SHAP 值 / predict_contributions 用于交叉验证
- r - 禁用特定范围滑块
- php - 带边框的动态表格
- c# - 如何在运行时加载播放器精灵。统一
- reactjs - 为什么即使值相同,双花括号子项也会导致我的 React.memo 组件重新渲染?
- swift - 使用多边形三角剖分创建自定义几何体并在 SceneKit 中应用纹理坐标
- c++ - “衰减”一个模板化的别名
- python - 在 Python 中切片 str 列表