vue3如何自定义js文件(插件或配置)

目录
  • vue3自定义js文件
    • 举例腾讯防水墙js调用文件
  • vue加载自定义的js文件
    • 效果图
    • 遇见的问题
    • 使用

vue3自定义js文件

在vue3中自定义的js文件,如果需要设置全局this.xxx调用方式的话,需要给方法、变量、常量export出去,调用install()方法

插件的功能范围没有严格的限制——一般有下面几种:

添加全局方法或者 property。如:vue-custom-element

添加全局资源:指令/过滤器/过渡等。如:vue-touch

通过全局混入来添加一些组件选项。如:vue-router

添加全局实例方法,通过把它们添加到 config.globalProperties 上实现。

一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router

export default {
  install: (app) => {
  }
 }

举例腾讯防水墙js调用文件

v2

// TencentCaptcha.js
import Vue from 'vue';
const appId = '*********';
Vue.prototype.$txCaptcha = (cb) => {
  const t = new window.TencentCaptcha(appId, (rsp) => {
    t.destroy();
    cb(rsp);
  }, {});
  t.show();
};
// main.js
import './config/TencentCaptcha';

使用

export default {
// ...
methods:{
    getCode () {
        this.$txCaptcha((res) => {
            this.txResult = res;
        });
    }
}
}

v3

// TencentCaptcha.js
const appId = '*********';
export default {
  install: (app) => {
    const Vue = app;
    Vue.config.globalProperties.$txCaptcha = (cb) => {
      const t = new window.TencentCaptcha(appId, (rsp) => {
        t.destroy();
        cb(rsp);
      }, {});
      t.show();
    };
  },
};
// main.js
import { createApp } from 'vue';
import App from './App.vue';
import txCaptcha from './config/TencentCaptcha';
createApp(App).use(txCaptcha)

使用

<script setup lang="ts">
import {getCurrentInstance} from 'vue'
getCurrentInstance().appContext.config.globalProperties.$txCaptcha((res) => {
    this.txResult = res;
});
</script>

vue加载自定义的js文件

在做项目中需要自定义弹出框。就自己写了一个。

效果图

遇见的问题

怎么加载自定义的js文件

vue-插件这必须要看。然后就是自己写了。

export default{
    install(Vue){
        var tpl;
        // 弹出框
        Vue.prototype.showAlter = (title,msg) =>{
            var alterTpl = Vue.extend({     // 1、创建构造器,定义好提示信息的模板
                    template: '<div id="bg">'
                         + '<div class="jfalter">'
                         + '<div class="jfalter-title" id="title">'+ title +'</div>'
                         + '<div class="jfalter-msg" id="message">'+ msg +'</div>'
                         + '<div class="jfalter-btn" id="sureBtn" v-on:click="hideAlter">确定</div>'
                         + '</div></div>'
            });
            tpl = new alterTpl().$mount().$el;  // 2、创建实例,挂载到文档以后的地方
            document.body.appendChild(tpl);
        }
        Vue.mixin({
          methods: {
            hideAlter: function () {
              document.body.removeChild(tpl);
            }
          }
        })
    }
}

使用

import jFAltre from '../../assets/jfAletr.js';
import Vue from 'vue';
Vue.use(jFAltre);
this.showAlter('提示','服务器请求失败');

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Vue3 编写自定义指令插件的示例代码

    编写自定义插件 // src/plugins/directive.ts import type { App } from 'vue' // 插件选项的类型 interface Options { // 文本高亮选项 highlight?: { // 默认背景色 backgroundColor: string } } /** * 自定义指令 * @description 保证插件单一职责,当前插件只用于添加自定义指令 */ export default { install: (app: App,

  • Vue3 中自定义插件的实现方法

    目录 1. Vue 插件 2. 自定义插件 2.1 基本用法 2.2 加入组件 2.3 加入指令 2.4 provide & inject 3. 小结 最近在录 TienChin 项目,项目涉及到了 Vue 中插件的定义,因此整了这么一篇文章,手把手教大家在 Vue3 中定义插件,这个技能掌握了,就可以看懂 TienChin 前端代码了. 1. Vue 插件 在 Vue 中,一些简单的功能,我们可以直接定义为全局方法,然后挂到 Vue 上就能使用了,例如在 vhr 中,我们将网络请求方法进行封装

  • vue加载自定义的js文件方法

    在做项目中需要自定义弹出框.就自己写了一个. 效果图 遇见的问题 怎么加载自定义的js文件 vue-插件这必须要看.然后就是自己写了. export default{ install(Vue){ var tpl; // 弹出框 Vue.prototype.showAlter = (title,msg) =>{ var alterTpl = Vue.extend({ // 1.创建构造器,定义好提示信息的模板 template: '<div id="bg">' + '&

  • vue3如何自定义js文件(插件或配置)

    目录 vue3自定义js文件 举例腾讯防水墙js调用文件 vue加载自定义的js文件 效果图 遇见的问题 使用 vue3自定义js文件 在vue3中自定义的js文件,如果需要设置全局this.xxx调用方式的话,需要给方法.变量.常量export出去,调用install()方法 插件的功能范围没有严格的限制——一般有下面几种: 添加全局方法或者 property.如:vue-custom-element 添加全局资源:指令/过滤器/过渡等.如:vue-touch 通过全局混入来添加一些组件选项.

  • 解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题

    1.在vue项目根目录下新建vue.config.js(不是在src下面) vue.config.js配置文件: module.exports = { // 基本路径 baseURL已经过时 publicPath: './', // 输出文件目录 outputDir: 'dist', // eslint-loader 是否在保存的时候检查 lintOnSave: true, // use the full build with in-browser compiler? // https://vu

  • Vue3 中的插件和配置推荐大全

    目录 1. Vite 2. 自动导入常见方法 2.1 传统写法 2.2 自动导入 3. 组件去后缀 4. name 属性问题 小伙伴们知道 TienChin 项目前端用的是 Vue3,当我们把 Vue3 官网刷了一遍之后回来看 TienChin 项目的前端,发现还是有很多不太一样的地方,今天松哥就来和大家捋一捋 Vue3 中几个好玩的插件和配置,学完之后,相信大家对 TienChin 项目前端的很多写法就明白了. 1. Vite 首先来给大家介绍一下 Vite,虽然这在 Vue3 中并不是必须的

  • Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能

    本文实例讲述了Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能.分享给大家供大家参考,具体如下: 扩展插件下载地址,解压后复制到/protected/vendor/ https://github.com/muayyad-alsadi/yii-EClientScript main配置文件配置插件,components里面增加 //js,css代码压缩,合并 'clientScript' => array( 'class' => 'application.ven

  • antd配置config-overrides.js文件的操作

    下载antd 包 npm install antd 下载依赖包(定义组件按需求打包) npm install react-app-rewired customize-cra babel-plugin-import 自定义less-loader,改变antd默认样式 npm install less less-loader 根目录定义加载按需打包的js配置模块: config-overrides.js const {override,fixBabelImports,addLessLoader} =

  • vueCli4如何配置vue.config.js文件

    目录 vueCli4配置vue.config.js vueCli4配置文件路径别名及使用 项目根目录下创建vue.config.js文件 配置文件中写入一下代码 别名的使用 vueCli4配置vue.config.js const path = require('path') const CompressionPlugin = require('compression-webpack-plugin') //cnpm install --save-dev compression-webpack-p

  • Bpmn.js 自定义描述文件使用说明

    目录 前言 说明文件配置属性 自定义说明文件demo 说明文件 SelfDescriptor.json 使用 结果 后记 前言 在使用 bpmn-js 绘制流程图时,可能会存在需要开发者自己定义属性或者元素的情况,为了保证符合官方定义,对官方文档进行了汉化说明.以下说明基于个人理解,可能与真实作用有出入,希望大家指出不正确或者意义不明的地方,我好加以改正,谢谢! 说明文件配置属性 原文见 bpmn 官方仓库 bpmn-io/moddle . 自定义说明文件demo 说明文件 SelfDescri

  • nodejs教程 安装express及配置app.js文件的详细步骤

    安装express.js 如果你安装了npm,安装变得很简单,只需要在终端中运行下面的代码即可: 复制代码 代码如下: npm install express -gd -g代表安装到NODE_PATH的lib里面,而-d代表把相依性套件也一起安装.如果沒有-g的话会安装目前所在的目录(会建立一个node_modules的文件夹),你可以透过以下指令来比较两者的不同: 复制代码 代码如下: npm list -gnpm list 如果没有npm,那么我可以使用github来git下来最新的expr

  • 自定义require函数让浏览器按需加载Js文件

    前言 本文介绍的是自定义require函数让浏览器实现按需加载Js文件,那到底要怎么自己写一个按需加载的库呢 为了实现按需加载: //这是我们要实现的功能,require('str.js')时加载str.js文件,并创建一个叫str对象,等加载完毕之后执行str对象的ready方法里的函数. var str = require('str.js'); str.ready(show); //要执行的函数 function show(res){ console.log(res); } //str.js

随机推荐