在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 相关文章推荐
jquery缓动swing liner控制动画过程不同时刻的速度
May 29 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
js实现的星星评分功能函数
Dec 09 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
Feb 05 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
Jul 05 Javascript
vue自动化表单实例分析
May 06 Javascript
一百行JS代码实现一个校验工具
Apr 30 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 Javascript
ant design 日期格式化的实现
Oct 27 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数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
jQuery分组选择器用法实例
2014/12/23 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
python 实现视频流下载保存MP4的方法
2019/01/09 Python
Python如何使用函数做字典的值
2019/11/30 Python
django框架ModelForm组件用法详解
2019/12/11 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
python高级特性简介
2020/08/13 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
商务助理岗位职责
2013/11/13 职场文书
满月酒答谢词
2014/01/14 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
Python中time标准库的使用教程
2022/04/13 Python
golang定时器
2022/04/14 Golang
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers