【发布时间】:2018-07-20 17:47:58
【问题描述】:
我目前正在学习 React,并且(更重要的是)尝试了解 React 的实际工作原理。
我有一些生成的 css,我想将其作为样式元素附加到头部。在 js 领域,这将是:
const $style = document.createElement("style");
document.head.appendChild($style);
const randBlue = ~~(Math.random() * 250);
$style.innerHtml = `body { color: rgb(10, 10, ${randBlue}); }`;
不幸的是,在 React 领域,这方面的事情似乎不太直接。我对此的理解是,随意添加样式是不好的做法,因为这样做的人太多会导致问题。我还认识到,大多数人都使用 styled-components、glamorous、styled-jsx 或 inline 来生成 css,因为它们规避了很多可能因上述任性而产生的问题。
但是我不想使用我不了解的模块,据我所知,上面的大多数都创建了样式元素并以某种方式将它们附加到头部,我想知道如何。
所以,如果我在 React 中并且有一些生成的 css 文本:
const randomColor = Math.random() > 0.5 ? "red" : "blue";
const generatedCss = `body { color: ${randomColor}; }`;
这里有什么?
createStyleElementAndAppendToHead(generatedCss) {
// mystery code
};
【问题讨论】: