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 相关文章推荐
JS 自动安装exe程序
Nov 30 Javascript
JQuery读取XML文件数据并显示的实现代码
Dec 16 Javascript
jquery配合css简单实现返回顶部效果
Sep 30 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
原生js和jQuery随意改变div属性style的名称和值
Oct 22 Javascript
javascript控制台详解
Jun 25 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
vue 2.0 购物车小球抛物线的示例代码
Feb 01 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
May 16 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
js实现列表向上无限滚动
Jan 13 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
Mar 02 Javascript
在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
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
jQuery 操作XML入门
2008/12/25 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python中os.path用法分析
2015/01/15 Python
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
Python数据操作方法封装类实例
2017/06/23 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
本科毕业生自荐信
2014/05/26 职场文书
毕业生工作求职信
2014/06/30 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
Java 多线程协作作业之信号同步
2022/05/11 Java/Android
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL