如何在Vue组件中调用封装好的外部js文件方法

简介: 这篇文章介绍了如何在Vue组件中调用封装好的外部js文件方法,包括在Vue项目中全局引入外部js文件,并在组件中通过this.$myMethod()的方式调用外部js文件中定义的方法。

文章目录

  • 1、前言
  • 2、抽离基本业务js
  • 3、在具体组件中调用
    • 3.1 引入
    • 3.2 组件中调用
    • 3.3 实现的效果
  • 4、实际项目中的运用
    • 4.1 核心展示

将一些常用的方法,比如字符串格式化呀,时间格式话呀,常用的表单验证方法呀等等。可以抽离出为基础的业务。在组件中使用的时候,只需要将对应的js文件引入,便可以直接使用其中的方法。达到代码复用的效果,同时也便于后期的维护。

1、前言

大量重复的代码不仅会降低开发效率,也不利于后期的维护。所以我们要想办法将可以复用的代码抽离出来。就像抽离成组件那样

2、抽离基本业务js

这里可以写一些共用的方法,可以写多个方法,方法之间也可以相互调用。

以下案例只是作为一个说明,说明在组件中调用改公共业务中的方法是可行的。

我这里只作演示,就简单写了一个函数。就是当传入的参数大于5的时候返回原参数,如果不大于5,则返回0


function testA(str) {
    let val = "";
    if (str > 5) {
        val = str +5
    } else {
        val = 0;
    }
    return val;

}

const MyTest = {
    testA
}

export default MyTest;

3、在具体组件中调用

3.1 引入

在需要使用的地方引入,可以引入多个不同的业务组件,业务组件之间也可以继承

import action from "@/standard-js-lib/business/common/test";

3.2 组件中调用

  //通过点击按钮,调用方法,在方法中实现业务的调用
      <span>测试MyTest的值是{
  
  { MyTest }}</span>
      <el-button type="primary" @click="changeStatus()">
        点我改变MyTest的值
      </el-button>

  //在方法中,使用公共的业务方法
    changeStatus() {
      var num = action.testA(this.MyTest);
      if (num == 0) {
        this.MyTest = action.testA(10);
      } else if (num > 15) {
        this.MyTest = -1;
      }
    },

  //也可以在钩子函数中提前调用,完成一些其它的操作
  created() {
    this.MyTest = action.testA(this.MyTest);
  },

3.3 实现的效果

直接在钩子函数中调用:
初始值MyTest是2。所以调用改方法后的返回值是0

在这里插入图片描述


点击按钮,触发方法。在方法中,此时的MyTest值是0,再次调用方法,传入的参数是10。由于方法内部 10 > 5。方法的返回值是15。(主要目的是测试成功调用了公共业务方法

在这里插入图片描述


再次点击按钮,再次调用公共业务方法,返回值20。20>15,所以此时的MyTest的值是- 1;

在这里插入图片描述

4、实际项目中的运用

就是将表单验证的常用方法封装到一个js文件中,在不同的vue表单页面,可以选择不同的方法进行表单验证,以此达到复用代码的效果,后期维护也很方便

vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)

4.1 核心展示

js文件

//验证纯数字
let regNumber = /^[0-9]*$/;

//验证身份证
let IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
let IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/;

//验证邮箱
let regEmail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;//验证邮箱的正则表达式

export default{

    //这里截取部分验证
    //验证用户昵称
    checkNickName:(rule, value, callback)=> {
        value = value.replace(/\s*/g, "");//去除空格
        if (!value) {
            return callback(new callback('请输入昵称'))
        }
        if (value.length < 0 || value.length > 10) {
            callback(new Error("昵称的长度范围是0-10,请输入合法的名称!!!"))
        } else if (regNumber.test(value)) {
            callback(new Error("输入的内容不能是纯数字!!!"))
        } else {
            callback()
        }
    },
}

对应页面引入改js文件

import rules from '@/api/rules.js';
   //这里截取部分表单验证,具体的案例关于vue表单可查阅官网。这里是调用具体的方法
     password: [
              {required: true, message: '请输入密码', trigger: 'blur'},
              {validator:rules.checkPwd,trigger:'blur'}
            ],
   surepassword:[
              {required:true,message:'请再次输入密码',trigger:'blur'},
              {validator:checkPwdSure,trigger:'blur'}
            ]
相关文章
|
3月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
2天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
23 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
3月前
|
监控 JavaScript Java
Node.js中内存泄漏的检测方法
检测内存泄漏需要综合运用多种方法,并结合实际的应用场景和代码特点进行分析。及时发现和解决内存泄漏问题,可以提高应用的稳定性和性能,避免潜在的风险和故障。同时,不断学习和掌握内存管理的知识,也是有效预防内存泄漏的重要途径。
304 62
|
1月前
|
JavaScript 前端开发 开发者
JavaScript字符串的常用方法
在JavaScript中,字符串处理是一个非常常见的任务。JavaScript提供了丰富的字符串操作方法,使开发者能够高效地处理和操作字符串。本文将详细介绍JavaScript字符串的常用方法,并提供示例代码以便更好地理解和应用这些方法。
56 13
|
1月前
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
|
3月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
87 5
|
3月前
|
JavaScript 前端开发
js中的bind,call,apply方法的区别以及用法
JavaScript中,`bind`、`call`和`apply`均可改变函数的`this`指向并传递参数。其中,`bind`返回一个新函数,不立即执行;`call`和`apply`则立即执行,且`apply`的参数以数组形式传递。三者在改变`this`指向及传参上功能相似,但在执行时机和参数传递方式上有所区别。
45 1
|
3月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
49 1
JavaScript中的原型 保姆级文章一文搞懂

热门文章

最新文章

  • 1
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    23
  • 2
    Node.js 中实现多任务下载的并发控制策略
    32
  • 3
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    25
  • 4
    【JavaScript】深入理解 let、var 和 const
    48
  • 5
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    44
  • 6
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    53
  • 7
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    55
  • 8
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    71
  • 9
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    55
  • 10
    JavaWeb JavaScript ③ JS的流程控制和函数
    62