根据用于到达那里的 URL 动态生成站点信息
Dynamically generating site info based on the URL used to get there
我目前在一家财务规划公司的合同网站上工作。
对于某些上下文:
该站点将允许他们的客户通过向 API 请求 Webinarjam.com
来注册公司每月的网络研讨会
客户端是一个使用 React 构建的非常简单的单页站点。它包括有关网络研讨会的信息、有关网络研讨会主持人的信息以及注册表格。
我有一个简单的代理服务器 (NodeJS(Express)),它向后端的 WebinarJam api 发出请求。与单个 table PostgreSQL 数据库一起保存与会者信息以供公司参考。 (姓名、电子邮件、phone、参加的网络研讨会等)
网站已完全构建并准备好托管,因此我的问题。
我的问题
该网站将由公司的 5 位不同的演示者使用。他们每个人都希望拥有自己的 link 并能够将 link 发送给他们的特定客户。页面上的所有其他信息将保持不变(相同的网络研讨会,讨论的内容相同)只有演示者会改变。
所以我想知道是否有一种方法可以根据 link 在网站上动态呈现信息
到了吗?
当网站首次呈现时,会使用网络研讨会的 ID 向 Webinarjam 的 API 请求有关特定网络研讨会的信息。这个 returns 一个对象,包含有关网络研讨会的所有信息,包括演示者信息。 (网站上显示的所有信息都是根据此请求返回的数据动态呈现的)
那么从理论上讲,link 'john.webinar.com' 是否可以重新路由到 'webinar.com' 并且该站点会将 John 的信息呈现为演示者?
(我目前正在使用 Context API 进行全局状态管理,如果 Redux 适用于此类情况,我也很满意 table。)
Is there a way to dynamically render the info on a site based on the link that was used to get there?
是的,绝对! react-router and qs 包可以使这更容易和更清晰,但这里有一种方法只使用 DOM 方法。
const query = new URLSearchParams(window.location.search);
const presenter = query.get("presenter");
如果 URL 不包含 presenter
变量,则 presenter
变量将是 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
,那么它会呈现“由 John 呈现”。
可以使用 react-router-dom 设置像 mysite.com/john
这样的基于路径的 link。如果你想要一个像 john.mysite.com
这样的 subdomain 那么这需要在你的服务器上进行额外的配置(通过 .htaccess
或类似的)。
我目前在一家财务规划公司的合同网站上工作。
对于某些上下文:
该站点将允许他们的客户通过向 API 请求 Webinarjam.com
来注册公司每月的网络研讨会客户端是一个使用 React 构建的非常简单的单页站点。它包括有关网络研讨会的信息、有关网络研讨会主持人的信息以及注册表格。
我有一个简单的代理服务器 (NodeJS(Express)),它向后端的 WebinarJam api 发出请求。与单个 table PostgreSQL 数据库一起保存与会者信息以供公司参考。 (姓名、电子邮件、phone、参加的网络研讨会等)
网站已完全构建并准备好托管,因此我的问题。
我的问题
该网站将由公司的 5 位不同的演示者使用。他们每个人都希望拥有自己的 link 并能够将 link 发送给他们的特定客户。页面上的所有其他信息将保持不变(相同的网络研讨会,讨论的内容相同)只有演示者会改变。
所以我想知道是否有一种方法可以根据 link 在网站上动态呈现信息 到了吗?
当网站首次呈现时,会使用网络研讨会的 ID 向 Webinarjam 的 API 请求有关特定网络研讨会的信息。这个 returns 一个对象,包含有关网络研讨会的所有信息,包括演示者信息。 (网站上显示的所有信息都是根据此请求返回的数据动态呈现的)
那么从理论上讲,link 'john.webinar.com' 是否可以重新路由到 'webinar.com' 并且该站点会将 John 的信息呈现为演示者?
(我目前正在使用 Context API 进行全局状态管理,如果 Redux 适用于此类情况,我也很满意 table。)
Is there a way to dynamically render the info on a site based on the link that was used to get there?
是的,绝对! react-router and qs 包可以使这更容易和更清晰,但这里有一种方法只使用 DOM 方法。
const query = new URLSearchParams(window.location.search);
const presenter = query.get("presenter");
如果 URL 不包含 presenter
变量,则 presenter
变量将是 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
,那么它会呈现“由 John 呈现”。
可以使用 react-router-dom 设置像 mysite.com/john
这样的基于路径的 link。如果你想要一个像 john.mysite.com
这样的 subdomain 那么这需要在你的服务器上进行额外的配置(通过 .htaccess
或类似的)。