1. // 动态加载 css js 文件
    2. export function LoadJsCssFile(filename, filetype) {
    3. if (filetype === "js") {
    4. //如果是.js文件
    5. var fileref = document.createElement("script");
    6. fileref.setAttribute("type", "text/javascript");
    7. fileref.setAttribute("src", filename);
    8. } else if (filetype === "css") {
    9. //如果是.css文件
    10. var fileref = document.createElement("link");
    11. fileref.setAttribute("rel", "stylesheet");
    12. fileref.setAttribute("type", "text/css");
    13. fileref.setAttribute("href", filename);
    14. }
    15. if (typeof fileref !== "undefined")
    16. document.getElementsByTagName("head")[0].appendChild(fileref);
    17. }
    18. /**
    19. * 加载 script 文件
    20. * @param src
    21. */
    22. export function loadScript(src) {
    23. var addSign = true;
    24. var scripts = document.getElementsByTagName("script");
    25. for (var i = 0; i < scripts.length; i++) {
    26. if (scripts[i] && scripts[i].src && scripts[i].src.indexOf(src) != -1) {
    27. addSign = false;
    28. }
    29. }
    30. if (addSign) {
    31. var $script = document.createElement("script");
    32. $script.setAttribute("type", "text/javascript");
    33. $script.setAttribute("src", src);
    34. document.getElementsByTagName("head").item(0).appendChild($script);
    35. }
    36. }
    37. /**
    38. * 加载 link 文件
    39. * @param href
    40. */
    41. export function loadCss(href) {
    42. var addSign = true;
    43. var links = document.getElementsByTagName("link");
    44. for (var i = 0; i < links.length; i++) {
    45. if (links[i] && links[i].href && links[i].href.indexOf(href) !== -1) {
    46. addSign = false;
    47. }
    48. }
    49. if (addSign) {
    50. var $link = document.createElement("link");
    51. $link.setAttribute("rel", "stylesheet");
    52. $link.setAttribute("type", "text/css");
    53. $link.setAttribute("href", href);
    54. document.getElementsByTagName("head").item(0).appendChild($link);
    55. }
    56. }
    57. /**
    58. * 删除 script 文件
    59. * @param src
    60. */
    61. export function removeScript(src) {
    62. var scripts = document.getElementsByTagName("script");
    63. for (var i = 0; i < scripts.length; i++) {
    64. if (scripts[i] && scripts[i].src && scripts[i].src.indexOf(src) !== -1) {
    65. scripts[i].parentNode.removeChild(scripts[i]);
    66. }
    67. }
    68. }
    69. /**
    70. * 删除 link 文件
    71. * @param href
    72. */
    73. export function removeCss(href) {
    74. var links = document.getElementsByTagName("link");
    75. for (var i = 0; i < links.length; i++) {
    76. var _href = links[i].href;
    77. if (links[i] && links[i].href && links[i].href.indexOf(href) !== -1) {
    78. links[i].parentNode.removeChild(links[i]);
    79. }
    80. }
    81. }
    import React from "react";
    
    export default class LoadCss extends React.Component {
      state = { stylePath: "" };
    
      handleButtonClick = (type) => {
        return () => {
          this.setState({ stylePath: type }, () => {
            const { stylePath } = this.state;
            const href = stylePath === 1 ? "/css/a.css" : "/css/b.css";
            this.loadCss(href);
            if (href === "/css/a.css") {
              this.removeCss("/css/b.css");
            } else {
              this.removeCss("/css/a.css");
            }
          });
        };
      };
    
      /**
       * 删除 link 文件
       * @param href
       */
      removeCss(href) {
        let links = document.getElementsByTagName("link");
        for (let i = 0; i < links.length; i++) {
          let _href = links[i].href;
          if (links[i] && _href && _href.indexOf(href) !== -1) {
            links[i].parentNode.removeChild(links[i]);
          }
        }
      }
    
      /**
       * 加载 link 文件
       * @param href
       */
      loadCss(href) {
        let addSign = true;
        let links = document.getElementsByTagName("link");
        for (let i = 0; i < links.length; i++) {
          if (links[i] && links[i].href && links[i].href.indexOf(href) !== -1) {
            addSign = false;
          }
        }
        if (addSign) {
          var $link = document.createElement("link");
          $link.setAttribute("rel", "stylesheet");
          $link.setAttribute("type", "text/css");
          $link.setAttribute("href", href);
          document.getElementsByTagName("head")[0].appendChild($link);
        }
      }
    
      render() {
        return (
          <div className="test">
            <link rel="stylesheet" type="text/css" href={this.state.stylePath} />
            <button type="button" onClick={this.handleButtonClick(1)}>
              加载a.css
            </button>
            <button type="button" onClick={this.handleButtonClick(2)}>
              加载b.css
            </button>
            <button onClick={() => this.props.history.push("/home")}>
              跳转首页
            </button>
          </div>
        );
      }
    }
    

    加载的js 、css文件 会直接在html中head标签中显示