vue+element 封装公共js代码

一、多个 js 方法,不想用 vue.prototype
二、使用Vue.prototype 封装公共 js
三、封装的方法较多,又想通过this.直接调用


一、多个 js 方法,不想用 vue.prototype

封装一个弹框为例:

1. 在 components 文件夹下新增一个 js 文件夹,并在 js 文件夹下新增 index.js 文件。

import { MessageBox } from 'element-ui'
const handleconfirm = (text ='此操作将永久删除该文件, 是否继续?', type='warning') => {// 这里 export后面不加 default,引用时:import {方法名} from js文件地址。因为每个文件常有多个方法,所以常用此方案// export后加 default,引用时:import 方法名 from js文件地址// 通过export方式导出,在导入时要加{ },export default则不需要return MessageBox.confirm(text, '提示',{confirmButtonText: '确定',cancelButtonText: '取消',type: type})
}export { handleconfirm } 
  • export {}export default {} 的区别:
    export {}:引用时 import {方法名} from js文件地址
    export default {}:引用时 import 方法名 from js文件地址

2. 全局和局部使用的区别:笼统一点,全局注册在 main.js ,局部注册在需要调用的页面中。

import { handleConfirm } from '@/components/js'

3. 使用:

<el-button type="danger" size="mini" icon="el-icon-delete" @click="deleteData(scope.row.id)" >删除</el-button>//删除
deleteData(id) {handleConfirm().then( ()=> {//调用删除接口}).catch( ()=> {this.$message.info("已取消删除!");})
}

二、使用Vue.prototype 封装公共 js

参考了 weixin_38673922 的博客。

1. 封装表格自定义序号为例:

//在 main.js 中写
Vue.prototype.$setIndex = function(index=0, pageNum=1, pageSize=10) {return (pageNum-1)*pageSize +(index+1) ;
}

2. 使用方法:

<el-table-column type="index" :index="index=>this.$setIndex(index,this.searchForm.pageNum, this.searchForm.pageSize )" width="50" label="序号" align="center" 
></el-table-column>
//index是element内部封装好的参数,this.searchForm.pageNum和this.searchForm.pageSize是页码和一页显示的条数
//vue模板中的 this 可以删除

补充表格分页不使用方法的写法:

<el-table :data="tableData.slice((params.pageNum-1)*params.pageSize,params.pageNum*params.pageSize)" border style="width: 100%" :header-cell-style="{background:'#e0e9ff'}" 
></el-table>

三、封装的方法较多,又想通过 this. 直接调用

结合一、二

1. 在 components 文件夹下新增一个 js 文件夹,并在 js 文件夹下新增 index.js 文件。

import axios from 'axios';
import ElementUI from 'element-ui';function getProcess(typeCode){console.log(1)axios.get('/api/temp/getParams?typeCode='+typeCode).then(res => {    console.log(res)if( res.status == 200){      }})  .catch(err =>{this.$message.error('服务器响应失败');console.log(err);})
};function alert(){//...
}export default {getProcess, alert
}

2. 在 main.js 中引入,并在原型的身上挂载

import commonJS from '@/components/js'
Vue.prototype.$commonJS = commonJS;

3. 使用:

this.$commonJS.getProcess("0001");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React.js 入门与实战课程思维导图

原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了&#xff0c;在这里分享了课程中的思维导图&#xff0c;供大家参考。 原文发表于我的技术博客 此导图为课程中整理的重要知识点以及大纲导图&#xff0c;供大家学…

将递归文件系统遍历转换为流

在学习编程的时候&#xff0c;回到Turbo Pascal时代&#xff0c;我设法使用FindFirst &#xff0c; FindNext和FindClose函数在目录中列出文件。 首先&#xff0c;我想出了一个打印给定目录内容的过程。 您可以想象我为能够真正从自身调用该过程以递归遍历文件系统而感到自豪。…

Webpack 2 视频教程 002 - NodeJS 安装与配置

原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」。 Webpack 作为目前前端开发必备的框架&#xff0c;Webpack 发布了 2.0 版本&#xff0c;此视频就是基于 2.0 的版本讲解的。 这个基本就是目前国内最好的 Webpack 2.0 最好的学习视频了&#xff0c;…

vue+elementUI 添加多个可以全选的多选框

elementUI-checkbox官网&#xff1a;https://element.eleme.cn/#/zh-CN/component/checkbox 一、要做上面这种效果&#xff0c;首先要了解全选框中indeterminate 状态和v-model的变量的关系 参考 -Dayer-&#xff1a; <el-checkbox :indeterminate"isIndeterminate&…

WMI in C#[强类型操作]

C# 进行WMI操作的内容封装在System.Management.dll中&#xff0c;具体的在MSDN有详细描述&#xff0c;默认是用[“**’]去读取和设置属性等。 此处介绍一个自动生成强类型的包装软件&#xff0c;这样处理起来就简单了很多&#xff0c;不用在反复的查看参数等信息了。 1、 使用W…

JSR 303从I18N属性文件加载消息

总览 本文将说明如何适应JSR 303验证API来从I18n属性文件加载消息&#xff0c;并通过保留国际化的所有好处和对多种语言的支持来实现这一点。 为此&#xff0c;我们将实现一个基于Spring API的自定义MessageInterpolator&#xff0c;用于管理I18N消息。 依存关系 在进行这项工…

2019年ipa发布苹果应用商店审核指南

https://baijiahao.baidu.com/s?id1623886553597961077&wfrspider&forpc ipa 发布审核指南 说明&#xff1a; 本指南为初版&#xff0c;旨在帮助非技术人员快速了解苹果ipa发布审核流程非技术的审核专员发布审核只需处理 &#xff08;五&#xff09;、iTunes connect …

GridView生成序号

一个经常碰到的情况&#xff1a;GridView需要添加一个序号列&#xff0c;并且从1开始自动编号。而数据库中的ID往往是不连续的&#xff08;会有记录被删除的情况&#xff09;&#xff0c;我们无法绑定现有字段作为编号。因此我们需要手动给GridView编号。 思路&#xff1a;在Gr…

[前端优化]使用Microsoft Ajax Minifier对资源文件进行压缩优化

在前端优化中&#xff0c;js、css等文件的优化一般都是压缩的优化&#xff0c;进行合并、减小体积以达到减小请求的目的。 今天发现了一个集成在VS中的压缩插件&#xff0c;使得压缩变得比较快捷。 配置方法 首先需要去下载Microsoft Ajax Minifier&#xff0c;一路安装就可以&…

手把手教你用 elementUI 实现导航栏

elementUI导航栏官网 1. 安装 elementUI 2. 文件准备 3. 配置路由 4. 导航栏代码 一、安装 elementUI npm i element-ui -S&#xff1b; 在 main.js 中注册组件&#xff1a; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; Vue.use(Elem…

Java 8编写自定义收集器简介

Java 8引入了收集器的概念。 大多数时候&#xff0c;我们几乎不使用Collectors类中的工厂方法&#xff0c;例如collect(toList()) &#xff0c; toSet()或其他更花哨的方法&#xff0c;例如counting()或groupingBy() 。 实际上&#xff0c;没有多少人真正去研究如何定义和实现收…

vuex+element 从后台获取数据写导航栏-菜单权限

主要用到 vuex、router.beforeEach、router.addRoutes()。vuex 的使用方法可以看我的另一篇博客&#xff1a;vue笔记&#xff08;四&#xff09;vuex。 顺便安利一个 在线视频转gif图。 因为第一次用到 router.addRoutes()&#xff0c;在做这个需求的时候遇到了很多问题&…

Sql Server全局变量(转)

Sql Server一共提供了30多个全局变量常用:IDENTITY : 返回最后插入行的标识列的列值。ERROR : 返回最后执行的Transact-SQL语句的错误代码。没有错误则为零。ROWCOUNT : 返回受上一语句影响的行数&#xff0c;任何不返回行的语句将这一变量设置为0。DBTS : 返回当前数据库的…

P3393 逃离僵尸岛 最短路dijkstra

题目描述 小a住的国家被僵尸侵略了&#xff01;小a打算逃离到该国唯一的国际空港逃出这个国家。 该国有N个城市&#xff0c;城市之间有道路相连。一共有M条双向道路。保证没有自环和重边。 K个城市已经被僵尸控制了&#xff0c;如果贸然闯入就会被感染TAT...所以不能进入。由其…

jquery 给iframe里的元素添加事件

$("#iframeId").on("load", function(event){//判断 iframe是否加载完成 这一步很重要$("#divId",this.contentDocument).click(function(){//添加点击事件alert("就是这样");}); });更多专业前端知识&#xff0c;请上 【猿2048】www…

JavaFX技巧7:使用CSS颜色常量/派生颜色

在使用FlexCalendarFX时&#xff0c;我不得不定义一组颜色以可视化不同颜色的不同日历的控件。 每个日历不仅提供一种颜色&#xff0c;还提供几种&#xff1a;用于取消选择/选定/悬停状态的背景和文本颜色。 颜色曾在多个地方使用过&#xff0c;但为了简洁起见&#xff0c;我仅…

spring step 1 : 什么是spring

学习一门技术之前还是花点时间来看看这门技术的特点&#xff0c;我们通过使用这种技术能够达到什么效果。 1.spring是什么&#xff1f; 2.spring能够干什么&#xff1f; 3.为什么使用spring&#xff1f; 1.spring是一个开源的框架&#xff0c;主要是由IoC&#xff0c;AOP&#…

文字溢出显示三个点

1、单行溢出 text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 90%; 2、多行溢出 overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; 转载于:https://www.cnblogs.co…

import() 动态加载component组件失败

在写 vueelement 从后台获取数据写导航栏 时&#xff0c;当我加载动态路由&#xff0c;import() 总是失败。 假设 path: “/views/Home.vue”&#xff0c;name: “Home”。 一、使用 import() 语法加载组件 参考&#xff1a;“Cookysurongbin”的 解决vue动态路由异步加载im…

JPA /休眠刷新策略初学者指南

介绍 在我之前的文章中&#xff0c;我介绍了实体状态转换 对象关系映射范例。 当刷新当前持久性上下文时&#xff0c;所有管理实体状态转换都将转换为关联的数据库语句。 Hibernate的刷新行为并不总是像人们想象的那么明显。 后写 Hibernate尝试将持久性上下文刷新推迟到最后…