vue+iview+less+echarts实战项目总结


Posted in Javascript onFebruary 22, 2018

首先我们先分享一下源码:https://github.com/kunfan96/vue-admin

对于我这种刚开始用Vue做项目的菜鸟来说在组件数据定义方面犯了很多错误,尤其是在这个页面

vue+iview+less+echarts实战项目总结

在进行数据回选的时候自己重定义已经定好的数据,导致数据非常杂乱无章,具体在storeDetail.vue的14--321行,感觉这么多数据非常有必要的进行裁剪,用js进行运算把数据补充完整,这里相对把后台的任务减轻了很多,只是额外增加前端渲染数据的量

父子组件数据通讯问题

刚开始写Modal的时候对于Modal的开关modal父子组件共享的数据,然后在关闭的时候子组件改变了父组件传递的数据会报错,也就是props的值

vue+iview+less+echarts实战项目总结

在这里有2个解决方案,一个是用vuex共享Modal的开关(写起来有点绕,代码也不简洁),另外一个最好的方法是建立一个mixins文件夹,在mixins的js进行操作,关键代码--->mixins/closeModal.js--->this.$emit('on-cancel',false),子组件通过emit使父组件发生on-cancel,响应一个事件,这样写可以让其他多个子组件使用到Modal共用代码

组件命名方式

在这里我自己定义了文件夹采用了大驼峰命名法,例如文件夹Store,Shop,对于文件以及变量的命名采用小驼峰命名法,如果storeDetail.vue,parcelList.vue

多用flex

2018年flex将会是主流,兼容性问题也没必要理睬,还有多注意grind布局,可能也有流行了

多用懒加载

使用懒加载方便在低带宽时候能够带来更好的用户体验,在参考iview admin代码我把懒加载的用法统一为

{
 path:"/parcel-list",
 meta:{
  group:"parcel",
  item:"parcel-list"
 },
 component: resolve =>import('@/pages/Parcel/parcelList')
 }

侧边栏刷新问题

vue+iview+less+echarts实战项目总结

在这里要注意到组件给了2个绑定的变量active-name,open-names,这里我们在路由设置的时候添加

meta:{
  group:"",
  item:""
 }

通过this.$route.meta.group,this.$route.meta.item就可以与active-name,open-names进行匹配实现无刷新操作

记得多npm run build

iview这个组件有点问题,有时候就是修改Modal的样式我明明在style(不带scoped)标签修改之后npm run dev样式修改成功,可是build之后样式就又重新恢复,后来把样式放在静态文件夹中才可以修改成功,还有就是表格居中build之后之后不能居中,总之,多build问题早点发现早点解决是好事(切莫佛系~~~)

Echarts在VUE的使用

在这里有个坑,在echarts实例化的时候在chart.vue有段代码

<div :id="chart.id"></div>
 let myChart=this.$echarts.init(document.getElementById(this.chart.id))

在这里注意到有个id,我在这里之所以这样做,把组件的id设为变量主要是echarts官网文档写到在网页中echarts实例化的div的id具有唯一性,由于我这个chars组件需要多次被被同一组件调用多次所以是只能将id设为一个变量(这个真的坑,调了很多次上官方文档看了好几次才知道...).另外最好把把echars的数据封装一遍

多写公用组件

框架这种东西本质就是减少代码,公用组件写好了调用的时候使用数据渲染就可以了,这样就能大大减少代码量,也符合MVVM的思想

Javascript 相关文章推荐
Javascript中获取出错代码所在文件及行数的代码
Sep 23 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
May 07 Javascript
js的隐含参数(arguments,callee,caller)使用方法
Jan 28 Javascript
Javascript学习笔记之数组的构造函数
Nov 23 Javascript
node.js学习之交互式解释器REPL详解
Dec 08 Javascript
vue子父组件通信的实现代码
Jul 09 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 Javascript
JavaScript常用工具函数汇总(浏览器环境)
Sep 17 Javascript
Vuex实现简单购物车
Jan 10 Vue.js
在vscode中统一vue编码风格的方法
Feb 22 #Javascript
vue webpack打包优化操作技巧
Feb 22 #Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
Feb 22 #Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 #Javascript
把vue-router和express项目部署到服务器的方法
Feb 21 #Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
Feb 21 #Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
Feb 21 #Javascript
You might like
帅气的琦玉老师
2020/03/02 日漫
php实现加减法验证码代码
2014/02/14 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php单例模式示例分享
2015/02/12 PHP
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
Angularjs的ng-repeat中去除重复数据的方法
2016/08/05 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
Django开发中的日志输出的方法
2018/07/02 Python
python读取和保存图片5种方法对比
2018/09/12 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
使用python实现对元素的长截图功能
2019/11/14 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
Linux中如何用命令创建目录
2015/01/12 面试题
师德师风建设整改措施思想汇报
2014/10/11 职场文书
廉政承诺书
2015/01/19 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
焦点访谈观后感
2015/06/11 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
Python中相见恨晚的技巧
2021/04/13 Python
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android