本文转载自微信公众号「神奇的程序员K」,作者神奇的程序员K 。转载本文请联系神奇的程序员K公众号。
前言
20多天前,遇到一个日程表的业务需求,可以动态增加列、对单元格进行合并,结合公司的jsp项目的已有功能完成单元格的增、删、改操作。进行需求分析整理后,经过了一番查找,发现React版本的antd的表格组件功能很强大,可定制程度很高,可以助我完成这个业务需求的开发。
由于要和jsp进行交互,所以在实现过程中,遇到了一些难题踩了挺多坑,本文就跟大家分享下我从0到1实现这个需求的过程与思路,欢迎各位感兴趣的开发者阅读本文。
环境搭建
因为公司的项目是基于jsp的,antd本想用Vue版本的,无奈它与jsp的一些语法冲突了跑不起来,于是就尝试了react版本的antd,它跑起来了没有发现任何兼容性问题,一切正常。给React点个赞??。
由于要与项目中已有的功能进行交互,没法用脚手架,我只能以cdn的方式引入react,如下所示,按顺序引入react、axios、lodah以及antd所需要的文件。
- <script crossOrigin type="text/javascript" src="lib/react.production.min.js"></script>
- <script crossOrigin type="text/javascript" src="lib/react-dom.production.min.js"></script>
- <script src="lib/babel.min.js"></script>
- <script type="text/javascript" src="lib/moment.min.js"></script>
- <script src="lib/lodash.min.js"></script>
- <script type="text/javascript" src="lib/antd.min.js"></script>
- <script type="text/javascript" src="lib/axios.min.js"></script>
- <link rel="stylesheet" href="lib/antd.min.css">
上述用到的资源文件地址: react-antd-schedule/lib
我们需要把react相关代码写在text/babel标签中,如下所示,我们打印antd和react看看是否有值。
- <script type="text/babel">
- console.log("react");
- console.log(React);
- console.log("antd")
- console.log(antd);
- </script>
打开浏览器控制台,出现下述信息,代表我们的环境已经搭建成功。
image-20201119155715157
接下来,我们写个HelloWord来测试下效果。
- <div id="root" style="width: 94%;overflow: hidden"></div>
- <script type="text/babel">
- // 自定义hook
- const App = () => {
- const onChange = (date, dateString) => {
- console.log(date, dateString);
- }
- return (
- <div>
- React+antd引入成功
- <br />
- <antd.DatePicker onChange={onChange} />
- </div>
- );
- };
- ReactDOM.render(<App />, document.getElementById("root"));
- </script>
操作场景 共享型 负载均衡用户可以通过添加转发策略支持自行设定的域名和URL,将...
操作场景 IPv6的使用,可以有效弥补IPv4网络地址资源有限的问题。如果当前 云服...
现在越来越多的企业和站长,选择使用 云服务器 搭 建网站 或应用, 云服务器 好...
云数据库和服务器数据库的区别是什么?一般购买了 云服务器 之后,可以自己在 云...
昔日的数据架构已经无法满足当今对速度、灵活性和创新的需求。成功升级的关键(也...
任何编程语言的简写技巧都能够帮助你编写更简练的代码,让你用更少的代码实现你...
调用SetDeletionProtection接口修改资源栈的删除保护属性。 调试 您可以在OpenAP...
【51CTO.com快译】作为开发人员,您一定听说过知名的UI库React、成熟的前端框架A...
近日,广州快兔物流科技有限公司旗下智能物流平台“快兔物流”正式更名为“快运...
我是一名大学生,专业是软件工程,最近在学习linux,听了狂神的服务器的购买及配...