reactjs - React 中的动态页面路由
问题描述
您好,我正在尝试使用电子商店用例来学习 React。我在数据库中有 200 000 个项目,它们按类别分组。每个产品或每个产品类别都应该可以通过以下形式的 url 直接访问:
对于产品:
http://domain/product_name
http://domain/product_name2
等。
对于类别(代表菜单)
http://domain/laptops/gaming
将显示
product_name 和 product_name2 等。
由于类别和产品每晚都会添加/修改,因此必须“重新创建”路由器组件才能正确处理新产品和类别的路由,因为我没有使用 http://domain/product/product_name之类的路径...我不能使用静态路由
路径=/产品/:id ...
我有一个简单的 PHP rest api,它返回路径类型
http://domain/product_name ->type product
http://domain/laptops/gaming ->type section
基于这样,api
我可以通过以下代码正确确定用于渲染对象的组件(删除了其余 api 调用以使代码尽可能简单)
import React from 'react';
import './App.css';
import {
BrowserRouter as Router,
Route
} from 'react-router-dom';
import ShowProduct from './components/showProduct.js'
import ShowSection from './components/showSection.js'
const PageLocator=({var1})=>{
{/* determine from rest API if requested path is type of product or section
if product */}
return <div><ShowProduct product={var1.path} /></div>
{/* if section */}
return <div><ShowSection section={var1.path}
{/* if etc... */}
}
class App extends React.Component {
render() {
return(
<Router>
<div>
<PageLocator path="/" var1={{path:window.location.pathname}} />
</div>
</Router>
)
}
}
上面的代码实际上符合我的预期。我面临的问题是,由于我对 React 的零经验,我无法验证解决方案是否正确,所以我想请人验证并最终建议我如何使用 React 处理这样的要求。
解决方案
推荐阅读
- php - 无法使用 PHP PDO 从数据库中检索包含“%”的行
- sql - 基于一列对连续行进行分组
- react-360 - React-360 全景立方体贴图所需的图像规范
- gstreamer - gst-launch-1.0 videotestsrc !autovideosink 不起作用(va 错误)
- javascript - Promise 构造函数的静态方法
- ruby - 如何在 Ruby 哈希中打印所有键值对?
- vba - 剪贴板中的用户表单标签标题被粘贴为两个问号
- paperjs - 修改paperjs中的边界矩形
- java - Java:将矩阵变成列表:我的 add 方法不起作用,我不知道为什么
- android - 织物/Crashlytics GDPR