在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 相关文章推荐
csdn 论坛技术区平均给分功能
Nov 07 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
Jan 04 Javascript
jquery cookie实现的简单换肤功能适合小网站
Aug 25 Javascript
javascript unicode与GBK2312(中文)编码转换方法
Nov 14 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
AngularJS入门教程之AngularJS模型
Apr 18 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
从零开始实现Vue简单的Toast插件
Dec 03 Javascript
详解在create-react-app使用less与antd按需加载
Dec 06 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
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
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
德国自行车商店:Tretwerk
2019/06/21 全球购物
《蓝色的树叶》教学反思
2014/02/24 职场文书
经理任命书模板
2014/06/06 职场文书
欢迎家长标语
2014/10/08 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
经济纠纷起诉状
2015/05/20 职场文书