有没有比 `const` 更好的方法来存储大块文本?

Posted

技术标签:

【中文标题】有没有比 `const` 更好的方法来存储大块文本?【英文标题】:Is there a better way than `const` to store large blocks of text? 【发布时间】:2017-02-18 06:29:21 【问题描述】:

我正在使用 React 制作单页 Web 应用程序。我的一个页面有一大块这样的文本:

const ContentText = <p>......huge block of text.......</p>

在我的编辑器中看起来很丑,我想知道是否有存储大块文本以在页面上呈现的最佳做法。

【问题讨论】:

是的 - 更好的做法是存储大块文本。如果您需要保留一些 html,则表明您需要一个模板解决方案。如果您的 HTML 对于模板解决方案而言过于可塑性,请考虑内联生成 HTML 标记并填充它,这样您就不必将其保留为文本。 @vlaz 他说他正在使用反应,所以他已经在使用模板引擎。文本显然必须来自某个地方 @azium 根据我的经验,您将模板文本存储在模板 file 中,然后调用它。我想你可以将它存储在一个变量中,但它非常难看,正如 OP 所发现的那样。你甚至可以处理你的模板文件并将它们作为 ` 标签添加到你的 HTML 中(我在这里借用了 Knockout.js 的东西,但它很有用)在这种情况下你只需要获取他们通过 ID 然后执行替换。当然文本“必须来自某个地方”,但它不必与页面的逻辑混为一谈。这是 MVC 教给我们的最重要的事情之一。 @vlaz 但是 React 模板文件。 React 是一个视图库。这也向我们展示了 MVC 已经过时,单向数据流更容易维护。 @azium 我很困惑 - MVC 在什么时候指示“你不应有单向数据流”?如果它确实施加了这样的限制,我担心地没有意识到这一点。我认为它所说的本质上是“将您的观点与您的逻辑和数据分开”。 【参考方案1】:

我会用你的文本创建一个模块并导入它。这样一来,您根本不应该关心它在编辑器中的样子,因为除非您专门尝试编辑大量文本,否则您并没有真正接触该文件。

export default `
  ....huge block of text....
`

然后你实际使用它的地方:

import hugeText from './text/hugeText'

....

render() 
  return <p>hugeText</p>

像 atom 和 sublime 这样的编辑器也有“软包装”模式,所以你不需要大量的水平滚动。

【讨论】:

此文本将与 JS 代码一起打包,从而影响打包大小。更多下载,更多浏览器解析。

以上是关于有没有比 `const` 更好的方法来存储大块文本?的主要内容,如果未能解决你的问题,请参考以下文章

有没有更好的方法来实现成员函数 row() 的 const 版本而不使用 const_cast?

有没有比在开头使用 1=1 更好的方法来动态构建 SQL WHERE 子句?

PHP 有没有比使用标题(位置)更好的方法来保护我的页面?

为文字处理器存储文本的更好方法是啥?

有没有比使用 Console.Clear() 更好的方法来制作控制台游戏?

有没有比我的实现更好的方法来检查更新的文件?