这是我参与8月更文挑战的第18天,活动详情查看:8月更文挑战
然后学习一些进阶相关的知识。
跨域
需要配置一下cors(跨域资源共享)
ESLint
制定了代码规范,配置文件在.eslintrc.js中
本项目的基本规范依据了vue官方的eslint规则,进行了一些修改。
例如本项目是用两个空格缩进,如果需要改成4个,找到配置中的indent改为4就行了。
可以参考eslint文档eslint.org/docs/rules/ 默认情况下使用了最严格的plugin:vue/recommended来校验代码,可以依据情况进行修改。
之前已经配置过了vscode的保存自动格式化代码,就不再进行赘述了。
命名规范
- 所有的组件文件都是以大写开头,除了index.vue
- 所有js文件都是-连接
- views文件夹下,代表路由的.vue文件,用横线连接命名
路由懒加载
打包构建应用的时候,js包会变的很大,影响页面的加载速度。需要把不同路由对应的组件分隔开,成为不同的代码块,路由被访问的时候加载对应的组件,来提高页面的加载速度。
用到了Vue 的异步组件和 Webpack 的代码分割功能,项目最终使用的方案是使用babel 的 plugins babel-plugin-dynamic-import-node,具体实现不太理解,之后学webpack的时候再细究吧。
图表
项目里图表用的是Echarts,之前公司项目由于超大量的数据,性能原因放弃了Echarts,选择了Hightcharts,趁机再学一下Echarts了。
整体引入的话
var echarts = require('echarts')
但是由于Echarts挺大的,其实可以按需引入, 按需引入 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts')
// 引入柱状图
require('echarts/lib/chart/bar')
// 引入提示框和标题组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
ECharts 初始化必须绑定 dom,只能在 vue 的 mounted 生命周期里进行初始化 通过 watch 来触发 setOptions 方法,在改变数据时改变echarts
ECharts 图表宽度显示不正确的时候,因为 ECharts 本身并不是自适应的,父级容器宽度发生变化的时候,需要手动调用.resize() 方法