在vue中封装方法以及多处引用该方法详解


Posted in Javascript onAugust 14, 2020

步骤:

1.先建立一个文件,放你想封装的方法;然后导出;

部分代码:

在vue中封装方法以及多处引用该方法详解

在vue中封装方法以及多处引用该方法详解

注: 导出这个地方需要特别注意:如果是一个对象的话:export 对象;如果是一个函数的话:export { 函数 }

2.引入文件:

在vue中封装方法以及多处引用该方法详解

补充知识:vue uni-app 公共组件封装,防止每个页面重复导入

1、公共插件

实现目标,将公共组件或者网络请求直接在this中调用,不需要再页面引用

#例如网络请求
var _this = this;
 this.api.userInfo({
 token: ''
 }
 
#通用工具
_this.utils.showBoxFunNot("是否退出登陆", function() {
 console.log("确定")
 _this.api.logOut({}, function(data) {
 _this.utils.setCacheValue('token', '')
 uni.redirectTo({
 url: '/pages/LogIn/LogIn'
 });
 })
 })

公共插件utils.js 或者可以将网络请求api.js 封装成对象

var utils = {
 function_chk: function(f) {
 try {
 var fn = eval(f);
 if (typeof(fn) === 'function') {
 return true;
 } else {
 return false;
 }
 } catch (e) {

 }
 return false;
 },
 showBox: function(msg) {
 uni.showModal({
 title: "错误提示",
 content: "" + msg,
 showCancel: false,
 confirmText: "确定"
 })
 },
 showBoxFun: function(msg, fun) {
 uni.showModal({
 title: "提示",
 content: "" + msg,
 showCancel: false,
 confirmText: "确定",
 success: (res) => {
 fun(res)
 }
 })

 },
 showBoxFunNot: function(msg, fun, cancel) {
 var _this = this
 uni.showModal({
 title: "提示",
 content: "" + msg,
 confirmText: "确定",
 cancelText: "取消",
 success: (res) => {
 if (res.confirm) { //取消
 if (_this.function_chk(fun)) {
 fun(res)
 }
 } else if (res.cancel) { //确定
 if (_this.function_chk(cancel)) {
 cancel(res)
 }
 }
 },
 can: (err) => {

 }
 })

 },
 notNull: function(obj, msg = '参数不能为空') {
 var keys = Object.keys(obj);
 console.log(keys)
 for (var i in keys) {
 var keyName = keys[i]
 console.log(keys[i])
 var value = obj[keyName]
 if (value == '') {
 console.log("为空的参数:",keyName)
 this.showBox(msg)
 return true;
 }
 console.log(value)
 }
 return false;
 },
 getCacheValue: function(key) {
 var value = '';
 try {
 value = uni.getStorageSync(key);
 } catch (e) {

 }
 return value;
 },
 setCacheValue: function(key, value) {
 try {
 value = uni.setStorageSync(key, value);
 } catch (e) {

 }
 }
}
export default utils

2、注册到vue 实例中

main.js 文件中将工具注册进入

import utils from 'common/utils.js';
import api from 'common/api.js';

Vue.config.productionTip = false
Vue.prototype.utils = utils
Vue.prototype.api = api

以上这篇在vue中封装方法以及多处引用该方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
Aug 22 Javascript
关于Javascript中defer和async的区别总结
Sep 20 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
微信小程序 基础知识css样式media标签
Feb 15 Javascript
详解10分钟学会vue滚动行为
Sep 21 Javascript
微信小程序仿微信运动步数排行(交互)
Jul 13 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 04 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
Jul 30 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
Oct 26 Javascript
JS+css3实现幻灯片轮播图
Aug 14 #Javascript
浅谈vue获得后台数据无法显示到table上面的坑
Aug 13 #Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 #Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
Aug 13 #Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 #Javascript
jQuery中event.target和this的区别详解
Aug 13 #jQuery
在Vue 中获取下拉框的文本及选项值操作
Aug 13 #Javascript
You might like
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
python字典get()方法用法分析
2015/04/17 Python
python黑魔法之编码转换
2016/01/25 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
速记Python布尔值
2017/11/09 Python
Django admin美化插件suit使用示例
2017/12/12 Python
python实现简易云音乐播放器
2018/01/04 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
大专会计自我鉴定
2014/02/06 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技