You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用GetServerSideProps控制前端渲染内容实现按时间展示指定文本

实现方案

核心逻辑是把时间判断、内容筛选逻辑全部放在服务端的getServerSideProps中执行,仅将最终需要渲染的内容通过props传递给页面组件,这样返回给前端的HTML只会包含待展示的内容,不会残留需要隐藏的文本。

代码示例

1. 编写getServerSideProps逻辑

export async function getServerSideProps() {
  // 定义指定的时间节点,可根据需求自行修改
  const targetTimestamp = new Date('2024-12-31T23:59:59').getTime()
  // 取服务器当前时间作为判断基准,避免客户端本地时间篡改
  const currentTimestamp = Date.now()

  let showContent = ''
  if (currentTimestamp < targetTimestamp) {
    // 指定时间前需要展示的内容
    showContent = '第一阶段专属文本内容'
  } else {
    // 指定时间后需要展示的内容
    showContent = '第二阶段专属文本内容'
  }

  return {
    props: {
      showContent
    }
  }
}

2. 页面组件直接渲染传入的props

export default function TimeControlPage({ showContent }) {
  return (
    <div className="text-area">
      {/* 无需在组件内做任何条件判断,直接渲染拿到的内容即可 */}
      {showContent}
    </div>
  )
}

注意事项

  • 必须使用服务器时间做判断基准,不要依赖客户端本地时间,避免用户修改本地时间获取未到展示期的内容
  • 如果待渲染的是复杂组件结构,可在getServerSideProps中返回内容类型标识,组件内仅根据标识做对应渲染即可,核心是所有条件判断逻辑都提前在服务端完成,不要在前端留存未筛选的全量内容
  • 该方案返回的HTML源码中只会包含当前需要展示的内容,完全不会出现需要隐藏的另一部分文本,不会有信息泄露的问题

内容的提问来源于stack exchange,提问作者Patrick Yen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:15:03