采用 React
和 Ant Design
兼容到浏览器 IE8
的 demo
例子.
- 采用低版本兼容的
dependency
有react@0.x
antd@1.x
jquery@1.x
- 其他
dependency
均采用最新版本, 具体请见package.json
- 关于
dev dependency
低版本兼容的比较多, 就不一一列举了, 具体请见package.json
- 初期搭建的时候, 完全参考 砖家的react-family-ie8项目配置
- 后期配置上改动也很大, 引入了
antd
cross-env
less
happypack
autoprefixer
, 以及配置上的加入多个单页应用的处理 - 关于
redux
的是否使用, 个人感觉, 一上来就用redux
, 组件耦合高, 逻辑结构复杂, 不利于提取组件和组件迁移复用等; 使用redux
真的是属于吃力不讨好的事情;如果你不清楚要不要用 redux, 那么就不用
;redux
写的项目代码耦合太高, 改动和变更起来十分费劲 - 关于组件之间通信, 一般有如下做法
- 配置新增
antd
支持- 兼容 IE8 需要引入
media-match
- 按需引入
babel-plugin-import
(vue 组件element-ui
和iview
也可以用这个来按需引入)
- 兼容 IE8 需要引入
- 配置新增
less
支持 - 配置新增
cross-env
支持, 设置生产环境和开发环境 - 配置新增
cssnano
支持, css 自动压缩和筛减 - 配置新增
autoprefixer
支持, css 自动添加浏览器兼容前缀 - 配置新增
copy-webpack-plugin
支持 - 配置新增
friendly-errors-webpack-plugin
支持 - 配置优化
output
绝对路径改相对路径 - 配置优化
bundle-loader
的组件创造函数, 具体见src/utils/bundle.js
- 新增兼容
antd表格表头和列固定的时候
报错IE8 不支持 onScroll 事件
, 具体见src/utils/antd.js
- 新增兼容
es5-shim
, 支持到 IE8 所必须 - 常用
cdn
源推荐
- 我是不留的,能少一行为什么不少
- 我是tab,不想争,因为争不完;1个字符比2个4个空格少,而且我随时可以转换成2空格或4空格
- js统一双引号,字符串内的双引号统一
\"
,单引号\x27
,双引号\x22
,那样就找不到单引号了 - css统一双引号,content内容必须转义,防止偶尔的乱码
- 原则上,行结尾的逗号,加不加逗号都不会有语法错误的情况,加逗号,方便整行移动时无视是否需要加逗号
- 习惯上,非行结尾的逗号,加不加逗号都不会有语法错误的情况,不加逗号
- 数组 如果内部换行,换行前必加逗号
- 对象 如果内部换行,换行前必加逗号
- 所有情况尽可能完整追加分号
- 如果赋值,一个变量一条const或者let,不用var
- 如果可以,尽可能用对象或数组的解构形式进行赋值
- 引入node_modules中的全局组件
- 引入node_modules中的非全局组件
- 凭借loader媒介加载的, 如:bundle-loader
- 自定义的一些组件
- 自定义的一些函数
- 引入图片文件
- 引入样式文件
- windows 下在当前目录执行
npm update -D & npm update -S
- linux 或 mac 下在当前目录执行
npm update -D;npm update -S
- 还可以安装
npm i -g npm-check-updates
,然后在当前目录执行ncu
或ncu -a
npm install
若在前面运行过此命令, 可跳过npm start
- 浏览器打开http://localhost:8888
npm install
若在前面运行过此命令, 可跳过npm run app
- 拷贝dist文件夹内容至服务器即可