在我的React webapp中,如何在最近更新的网站中显示正确的日期"场?

时间:2017-06-01 15:31:57

标签: node.js express webpack webpack-dev-server

我正在整理一个演示应用,其中我经常添加内容和新的React组件。我刚刚添加了组件react-timeago,用于显示对网站进行的最新更改。现在我想给该组件提供正确的时间戳。

在最坏的情况下,我想我可以显示服务器上次启动的时间。我在本地使用webpack-dev-server。我还没有使用这个网站,但是当我这样做时,它可能(比如webpack-dev-server)是一个基于快速的解决方案。因此,一个选项可能是在快速生成的日志文件上为服务器启动条目执行grep。解决这个问题会在一定程度上解决问题。值得注意的是,添加内容不需要重启,因此这种解决方案可能并不理想。据推测,我可以在表达中使用某种中间件(记录器或其他)。

另一种可能的方法可能是某种目录监视机制,它记录上次进行更改的时间。例如,我应该以某种方式将其挂钩到redux状态吗?可用的组件太多,很难知道哪些组件(我在这方面的经验有限)可以实现这一点。

我的网站是一个轻量级的单个寻呼机,我不愿意在这个阶段添加任何类型的数据存储,因为它对我来说似乎有些过分。

我还可以提一下,我正在使用webpack 2.除此之外,它还是一个非常基本的React应用程序,包含几个组件。

总结一下,我正在寻找一些方法来寻找添加的内容(例如mp3文件)或更改的代码文件,并将该时间戳记放入我的react-timeago组件中。

1 个答案:

答案 0 :(得分:0)

正如@Joe Clay建议的那样,我使用Webpack.DefinePlugin用重启时的当前时间填充常量。这很好用,我在webpack.config.js中添加了以下几行:



    var dateString = new Date().toDateString();
    ...
    new webpack.DefinePlugin({ 
        LAST_UPDATED: JSON.stringify(dateString)
    })




并且能够访问我的React组件中的常量:



<div style={{marginTop:120}}>A sinewave440hz demo site.<br/>
  This site was updated 
  <TimeAgo date={LAST_UPDATED} formatter={formatter}/>.
</div>
&#13;
&#13;
&#13;

如果资产的先前状态记录在某处,也可以在启动时记录资产的变化。