Css 如何在react中高效地内联设置表样式

Css 如何在react中高效地内联设置表样式,css,reactjs,Css,Reactjs,我可以通过以下方式在react中设置表格样式: var tableStyle = { "border": "1px solid black" }; return ( <div> <h1>My Awesome Table</h1> <table style={tableStyle}> <th>Awesome Header</th>

我可以通过以下方式在react中设置表格样式:

  var tableStyle = {
       "border": "1px solid black"
    };
    return (
      <div>
        <h1>My Awesome Table</h1>
        <table style={tableStyle}>
          <th>Awesome Header</th>

使用CSS,特别是在SPA应用程序中,可能会成为维护方面的一个难题。因此,我喜欢将我的风格融入到这个组件中,而其他人不会继承它。我怎样才能在不编写大量重复代码的情况下做到这一点呢?

您应该将所有样式放在单独的文件夹/和文件中,并保持关注点的分离。JavaScript中不应包含CSS声明。如果您必须设置组件的样式,那么应该使用CSS类而不是内联样式

然后可以从一个CSS文件中设置所有表的样式

/*CSS file*/

table.myAwesomeTable {
  ...code
}

/*Markup */
<table className="myAwesomeTable">

</table>
/*CSS文件*/
table.myAwesomeTable{
…代码
}
/*加价*/

我不完全清楚您在寻找什么,但您想要一种更好的方式,将css和标记放在一个没有外部依赖关系的文件中吗

如果是这样,这可能会奏效:

return (
  <style>{`
    table{
     border:1px solid black;
    }
  `}</style>
  <div>
    <h1>My Awesome Table</h1>
    <table>
      <th>Awesome Header</th>
      ...
)
返回(
{`
桌子{
边框:1px纯黑;
}
`}
我那张很棒的桌子
棒极了的头球
...
)
这里似乎需要使用模板文本字符串格式来支持跨多行的
内容

或者:

<style>{"table{border:1px solid black;}"}</style>
{“表{边框:1px纯黑色;}”

在global theme.js中定义样式

 "table, th, td" :{
      border: "1px solid white" },

      "th, td" : {
        textAlign: "center"
    },

应用程序中的所有表格现在都将显示白色边框

我认为使用单独css文件中的常规css类在您的应用程序中是不可接受的?Polymer scope@chris right。由于我提到的原因,我认为这是不可能的。你不能创建保证唯一的类名?我建议你也可以在W3上查找有关样式表的信息。他们有一些非常简单的操作说明和伟大的信息!我认为类似于
返回(styles…
会更好。@MrLister,当然。这是一个有效的选项,但这取决于我认为的组件,我们对此不太了解。我认为OPs的主要问题是如何在react中声明css规则,而不是如何将它们应用于每个元素。我个人更喜欢给
div
一个类,然后为每个元素设置样式ml元素,该元素是该div类的子元素。--但这只是首选项。只要您使用React,我认为内联样式没有问题。他明确要求不要使用单独的CSS文件
 "table, th, td" :{
      border: "1px solid white" },

      "th, td" : {
        textAlign: "center"
    },