如何在index.html中正确配置react-table的CDN链接以避免依赖冲突?
解决react-table CDN配置位置问题
嘿,我来帮你搞定react-table的CDN配置问题!要确保不破坏现有依赖,你需要严格按照依赖加载顺序来放置react-table的资源,具体如下:
正确的放置位置
你需要把react-table的CDN资源(CSS和JS)放在这两个位置:
- CSS文件放在
<head>里的Bootstrap CSS之后、自定义样式之后都可以(推荐放在Bootstrap CSS之后,避免样式覆盖冲突); - JS文件放在Bootstrap脚本之后,你的
bundle.js之前,同时要保证React和ReactDOM已经加载完成(如果你的bundle.js里没打包它们,就得额外引入React的CDN)。
为什么要这样放?
- 依赖顺序不能乱:react-table是基于React开发的,必须等React加载完成后再加载它;
- Bootstrap依赖jQuery:你现有的jQuery和Bootstrap顺序是对的,jQuery要在Bootstrap JS之前,千万别改;
- 你的业务代码要用到react-table:
bundle.js里的代码会调用react-table,所以得让react-table先加载好,成为全局可用的模块。
修改后的完整代码示例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Code_LMS</title> <link rel="stylesheet" href="/css/bootstrap.css" /> <link rel="stylesheet" href="/css/style.css" /> <!-- 引入react-table的样式文件 --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/react-table/7.8.0/react-table.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> </head> <body background="EasyMed.png"> <div id="app"></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> <!-- 注意:如果你的bundle.js已经打包了React和ReactDOM,可以删掉下面这两行 --> <script src="https://unpkg.com/react@17/umd/react.production.min.js"></script> <script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script> <!-- 引入react-table的JS脚本 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-table/7.8.0/react-table.min.js"></script> <script src="bundle.js"></script> </body> </html>
额外提醒
- 如果你用Webpack、Vite这类打包工具已经把React/ReactDOM打包进
bundle.js了,一定要删掉示例里的React CDN脚本,避免重复加载导致冲突; - 尽量选择和你React版本兼容的react-table版本(比如React 17搭配react-table 7.x是稳定兼容的);
- 把CSS放在
<head>里能确保页面渲染时样式已经就绪,不会出现无样式的闪屏问题。
内容的提问来源于stack exchange,提问作者mikasa
相关产品推荐
相关产品推荐

