在vue.js中抽出公共代码的方法示例


Posted in Javascript onJune 08, 2017

前言

当我们在使用vue构建中大型项目时,通常会遇到某些经常用的方法以及属性,比如说搭建一个员工管理系统,请求的url需要一个共同的前缀,或者在某几个view中需要用到时间,这个时间是通过某方法格式化之后的等等,如果每次用到都写共同的代码,那样如果之后有变动的话维护起来会非常麻烦。

所以我们就得想办法抽出公共代码,因为vue是组件化开发,我们就会很自然的与es6的module模块化联系到一起。其实当我们在搭建项目结构时就应该先提前埋下伏笔,有一个util文件夹,里面放的就是我们要写的公共代码,其实很多vue的例子都是类似于这种结构搭建的。

在vue.js中抽出公共代码的方法示例

对于固定的配置参数我们可以放到config.js中,就像下面这样。

const config = {
 request_prefix: 'http://localhost:10003',
 base_img: 'http://www.baidu.com',
 
}

const DingConf = function(data){
 xxxxxxxxx
}


export {config, DingConf}

对于常用的工具函数我们可以放到util.js中,结构跟上面一样。

然后为什么我要用export来导出,而不用export default呢?

因为前者更为灵活,因为对于大中型项目来说,我们的工具函数以及配置参数往往较多,如果我们使用export default导出的话,在组件中引入就会全部引入,但我们的需求是只在相应的页面中按需引入即可,所以在vue文件中,我们就可以这样写

import {config} from 'src/util/config'      // 引入模块
export default {
created(){


this.$http({



url: config.request_prefix + xxxxxxxxxxxxx  // 使用


})

}
}

这样写的优点是增强了可读性并利于维护。如果有同学不太理解es6中的import,export,建议大家去看下阮一峰大神的es6入门教程,在这里我也简单的说下吧,因为vue是模块化,所以就得导出某些东东,然后每个模块只负责不同的业务,所以嘛我们最后就得export一下,因为const是不变的常量,所以在配置项中尽可能用这个,在工具函数中用let声明变量,然后import后面的{ ... }就是引入某个模块的某些属性或方法,from 'xxxx' 这里面是指引入哪个模块。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
关于IFRAME 自适应高度的研究
Jul 20 Javascript
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
javascript 语法基础 想学习js的朋友可以看看
Dec 16 Javascript
javascript 随机展示头像实现代码
Dec 06 Javascript
js添加table的行和列 具体实现方法
Jul 22 Javascript
AngularJS的内置过滤器详解
May 14 Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 Javascript
AngularJS模仿Form表单提交的实现代码
Dec 08 Javascript
JavaScript基本类型值-Number类型
Feb 24 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
vue多页面项目中路由使用history模式的方法
Sep 23 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
Nov 12 Javascript
Ionic3 UI组件之autocomplete详解
Jun 08 #Javascript
jQuery+ajax实现局部刷新的两种方法
Jun 08 #jQuery
gulp解决跨域的配置文件问题
Jun 08 #Javascript
angular 用拦截器统一处理http请求和响应的方法
Jun 08 #Javascript
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 #jQuery
Ionic项目中Native Camera的使用方法
Jun 07 #Javascript
详解angular ui-grid之过滤器设置
Jun 07 #Javascript
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
php url路由入门实例
2014/04/23 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
python 实现生成均匀分布的点
2019/12/05 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
物理教师自荐信范文
2013/12/28 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
mysqldump进行数据备份详解
2022/07/15 MySQL