根据用于到达那里的 URL 动态生成站点信息



我目前在一家财务规划公司的合同网站上工作。

对于某些上下文:

该网站将允许他们的客户通过向API提出请求来注册公司的每月网络研讨会 Webinarjam.com

客户端是一个使用 React 构建的非常简单的单页站点。它包括有关网络研讨会的信息、有关网络研讨会演示者的信息以及注册表单。

我有一个简单的代理服务器(NodeJS(Express)),它向后端的WebinarJam api发出请求。以及一个表PostgreSQL DB,它将保存与会者信息以供公司参考。(姓名、电子邮件、电话、参加的网络研讨会等)

该网站已完全建成并准备好托管,因此我的问题。

我的问题

该网站将由该公司的 5 位不同的演示者使用。他们每个人都希望拥有自己的链接,并能够将该链接发送给他们的特定客户。页面上的所有其他信息将保持不变(相同的网络研讨会,讨论的内容相同),只有演示者会更改。

所以我想知道是否有办法根据用于 到达那里?

当网站首次呈现时,将使用网络研讨会的 ID 向 Webinarjam 的 API 发出请求以获取有关特定网络研讨会的信息。这将返回一个对象,其中包含有关网络研讨会的所有信息,包括演示者信息。(网站上显示的所有信息都是根据此请求返回的数据动态呈现的)

因此,从理论上讲,链接"john.webinar.com"是否可以重新路由到"webinar.com",并且该网站会将约翰的信息呈现为演示者?

(我目前正在使用上下文 API 进行全局状态管理,如果它适用于这样的事情,我也对 Redux 感到满意。

有没有办法根据用于到达那里的链接在网站上动态呈现信息?

是的,绝对!react-router 和 qs 包可以使这更容易、更干净,但这里有一种方法只是使用 DOM 方法。

const query = new URLSearchParams(window.location.search);
const presenter = query.get("presenter");

presenter变量可以是 URL 中的字符串,如果 URL 不包含字符串,则null变量。

export default function App() {
const query = new URLSearchParams(window.location.search);
const presenter = query.get("presenter");
return (
<div>
{presenter ? (
<h1>Presented By {presenter}</h1>
) : (
<h1>All Presentations</h1>
)}
</div>
);
}

如果你去mysite.com,那么它会呈现"所有演示文稿",但如果你去mysite.com/?presenter=John,那么它会呈现"由约翰呈现"。

mysite.com/john这样的基于路径的链路可以使用 react-router-dom 进行设置。 如果您想要像john.mysite.com这样的子域,则需要在您的服务器上进行其他配置(通过.htaccess或类似配置)。

最新更新