Vue学习笔记 - 插件

海康威视门禁考勤设备数据对接实战:从被动推送到主动拉取 本文深入探讨了海康威视门禁考勤设备数据对接的两种核心方案:HTTP推送与SDK主动拉取。文章对比了两种方式的适用场景、技术实现与优缺点,为开发者提供了从设备配置、代码编写到工程化部署的完整实战指南,帮助读者根据项目规模、网络环境及数据稳定性要求,做出最合适的技术选型。 阅读详情

介绍

插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码

import { createApp } from 'vue'

const app = createApp({})

app.use(myPlugin, {
  /* 可选的选项 */
})

一个插件可以是一个拥有 install() 方法的对象,也可以直接是一个安装函数本身。安装函数会接收到安装它的应用实例和传递给 app.use() 的额外选项作为参数:

对象的写法

const myPlugin = {
  install(app, options) {
    // 配置此应用
  }
}

函数的写法

import { App } from 'vue';
import HelloWorld from '@v3/components/HelloWorld.vue'
export default {
  install(app: App, options) {
    // 插件逻辑
    console.log('MyPlugin is installed with options:', options);
 
    // 你可以在这里添加全局方法、指令、混入等
    // 示例:添加全局方法
    app.config.globalProperties.$myMethod = () => {
      return 'This is a method from MyPlugin!'
      console.log('This is a method from MyPlugin!');
    };
    ...
  }
}

插件没有严格定义的使用范围,但是插件发挥作用的常见场景主要包括以下几种

  1. 通过 app.component() 和 app.directive() 注册一到多个全局组件或自定义指令。
  2. 通过 app.provide() 使一个资源可被注入进整个应用。
  3. 向 app.config.globalProperties 中添加一些全局实例属性或方法
  4. 一个可能上述三种都包含了的功能库 (例如 vue-router)。

编写一个插件

i18n (国际化 (Internationalization) 的缩写) 插件

创建插件代码文件

// plugins/i18n.js
export default {
  install: (app, options) => {
    // 在这里编写插件代码
  }
}

有一个翻译函数,这个函数接收一个以 . 作为分隔符的 key 字符串,用来在用户提供的翻译字典中查找对应语言的文本

<h1>{{ $translate('greetings.hello') }}</h1>

这个函数应当能够在任意模板中被全局调用。这一点可以通过在插件中将它添加到 app.config.globalProperties 上来实现

// plugins/i18n.js
export default {
  install: (app, options) => {
    // 注入一个全局可用的 $translate() 方法
    app.config.globalProperties.$translate = (key) => {
      // 获取 `options` 对象的深层属性
      // 使用 `key` 作为索引
      return key.split('.').reduce((o, i) => {
        if (o) return o[i]
      }, options)
    }
  }
}

$translate 函数会接收一个例如 greetings.hello 的字符串,在用户提供的翻译字典中查找,并返回翻译得到的值。

用于查找的翻译字典对象则应当在插件被安装时作为 app.use() 的额外参数被传入:

import i18nPlugin from './plugins/i18n'

app.use(i18nPlugin, {
  greetings: {
    hello: 'Bonjour!'
  }
})

reduce 方法

reduce 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

01

先传greetings 返回对象{hello:'Bonjour'},再传hello,返回Bonjour,如果中间一个没有,就没有了

效果

一开始的表达式 $translate('greetings.hello') 就会在运行时被替换为 Bonjour 了。

插件中的 Provide / Inject

可以通过 provide 来为插件用户供给一些内容。举例来说,我们可以将插件接收到的 options 参数提供给整个应用,让任何组件都能使用这个翻译字典对象。

// plugins/i18n.js
export default {
  install: (app, options) => {
    app.provide('i18n', options)
  }
}

想使用插件的开发者就可以在他们的组件中以 i18n 为 key 注入并访问插件的选项对象了

export default {
  inject: ['i18n'],
  created() {
    console.log(this.i18n.greetings.hello)
  }
}

大致过程

  1. app.use设置options
  2. plugin接收 install
  3. plugin设置 provider
  4. 其它组件的 inject 接收并使用

参考

  1. Vue-插件
  2. vue3 + ts:开发插件 / Plugins / 注册全局实例 / 在 template 与 setup 中使用 / provide、inject
  3. JavaScript reduce() 方法
D触发器版图设计的艺术:最小化面积与最大化性能的平衡之道 本文探讨了D触发器版图设计中如何平衡最小化面积与最大化性能的核心挑战。通过分析晶体管布局、互联优化、时钟分布等关键策略,结合先进制程下的功耗与信号完整性考量,为数字IC工程师提供了从基础优化到制造验证的实用解决方案,助力实现高性能、低面积的芯片设计。 阅读详情

相关推荐

神州数码防火墙(DCN)NAT SSL-VPN配置

SSL-VPN是基于应用层的VPN,采用SSL协议来实现远程接入的一种新型VPN技术,比L2TP更加灵活的VPN方案。是天然的安全远程接入方案。用户可以通过浏览器的HTTPSs登录VPN的网址。SSL-VPN的认证方式包括LDAP,radius,CA,USB Key等方式。 SSL VPN的主要应用场景是保证远程用户能够在企业外部安全\高效的访问企业内部的网络资源

qq_50966485的博客 4558

纯vue实现笔记系统

只用vue前端实现笔记系统

xc9711的博客 2448

Zabbix安装与部署 系统环境:centos7.0

Zabbix安装与部署 系统环境:centos7.0

weixin_42485027的博客 2600

vue plugins 创建和使用(个人使用)

1. plugins.js export default function install (Vue) { if (install.installed) return install.installed = true Vue.component('VueSkipTo', VueSkipTo) Vue.directive('focustest', { inserted (el) { el.focus() } }) } 2. main.js 引入和注册

q915730058的博客 448

从共现矩阵到共现图一步到位——详解版

1.共现矩阵 判断大量不同文本之间,相邻词的联系,两词在所有文本中相邻的次数在矩阵中用数值表示。(参考此) 例子如下: 1.1 文本 • I like deep learning. • I like NLP. • I enjoy flying. 1.2 共现矩阵 2.共现图 2.1 数据预处理(节点和边) 获取文件node.csv和edge.csv。代码详见github仓库 2.2 共现图的制作 2.2.1 gephi的安装(参考此) (1)先下载gephi (2) 再配置java环境(下载java1.8

微乐的博客 4402

Genesis物理引擎实战指南:轻量级确定性刚体仿真核心

刚体物理仿真作为机器人控制、嵌入式运动学验证和确定性游戏开发的基础技术,其核心在于数值稳定性、跨平台可复现性与约束求解精度。本文围绕线性互补问题(LCP)求解、半隐式欧拉积分和零依赖C++实现三大关键技术展开,解析如何在无GUI、低算力环境下构建可单步调试、帧级可控的确定性仿真系统。重点覆盖碰撞检测数学建模、关节局部坐标系绑定、质量-惯性张量一致性校验等工程落地关键点,适用于STM32、树莓派及教育实验场景。内容深度结合Genesis Physics Engine的源码实践,直击‘穿模’‘NaN’‘关节发软

ciya3282的博客 1591

使用 Vue 3 实现高效文本批注功能

本文详细介绍基于Vue 3和Element Plus构建文本批注组件的实现方案。该组件提供文本高亮、批注管理等功能,包含动态显示添加按钮、侧边栏批注卡片展示、L型虚线连线等特性。通过SVG实现批注连线,采用Composition API组织逻辑代码,支持批注的增删改查操作。组件结构分为内容区、批注按钮和侧边栏三部分,利用getBoundingClientRect计算位置关系实现精准定位。实现要点包括文本选择监听、高亮样式控制、DOM节点操作以及响应式布局调整,为用户提供直观的批注交互体验。

chuangtxj123的博客 1831

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube

本教程基于群晖的NAS设备DS423+的docker功能进行搭建,DSM版为 7.2.1-69057 Update 5。MetaTube是一个媒体服务器插件,主要用于Emby和Jellyfin媒体服务器。它的主要功能是从互联网上抓取内容并响应 JSON 数据,然后通过预安装的 MetaTube 插件请求服务器并下载相应的元数据,以与 Jellyfin/Emby 服务器配合使用。使用 MetaTube 的步骤大致如下:部署后端:首先,需要部署一个名为​ 的后端 API 服务器来抓取内容。

小小笔记大大用处 1万+

Vue 插件及Vue.use源码分析

### 插件 插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种: 1. 添加全局方法或者属性。如: vue-custom-element 2. 添加全局资源:指令/过滤器/过渡等。如 vue-touch 3. 通过全局混入来添加一些组件选项。如 vue-router 4. 添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。 ...

wanda000的博客 281

BoT-SORT实战:手把手教你实现BoT-SORT训练和测试

文章目录摘要1、数据准备2、配置BoT-SORT环境2.1、获取代码2.2、创建虚拟环境2.3、安装必要的包2.3.1、安装pytorch2.3.2、安装cython2.3.3、安装Cython-bbox2.3.4、安装faiss2.3.5、安装其他的包3、训练3.1、生成REID数据集3.2、预训练模型3.2.1、ByteTrack预训练模型3.2.2、REID预训练模型3.3、开始训练4、如何更改FASTREID的BackBone?5、测试5.1、测试视频5.2、测试摄像头5.3、多类别测试 摘要 Bo

m0_47867638的博客 2298

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

weixin_45735391的博客 17万+

手把手教您编写一个简单的vue3插件

插件是自包含的代码,通常向 Vue 添加全局级功能。你如果是一个对象需要有install方法Vue会帮你自动注入到install 方法 你如果是function 就直接当install 方法去使用.并在文件夹中新建.vue组件和一个index.js文件.vue文件作为自定义插件.组件就是把图形非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件。

BradenHan的专栏 2847

计算机网络基础:认识网络硬件与传输介质

计算机网络基础:认识网络硬件与传输介质,在计算机网络的庞大体系中,网络硬件与传输介质犹如坚实的骨架与脉络,支撑并承载着信息的流动。从家庭中的小型网络,到企业复杂的办公网络,再到覆盖全球的互联网,各类网络硬件设备各司其职,不同的传输介质发挥着独特的传输作用。它们相互协作,使得数据能够在不同设备之间快速、准确地传输,为人们的日常沟通、工作办公、娱乐休闲等活动提供了基础保障。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

Vue学习笔记——12.插件

1.简介 插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种: 添加全局方法或者 property。如:vue-custom-element 添加全局资源:指令/过滤器/过渡等。如 vue-touch 通过全局混入来添加一些组件选项。如 vue-router 添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。 一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router 2.插件使用 通过全局方法 Vue.us

XHY的博客 184

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Vue学习笔记3—Vue插件

Vue插件 获取DOM元素 使用方法: 在template中标识元素 ref = “xxx” 在要获取的时候,this.$refs.xxx 获取元素 创建组件,装载DOM,用户点击按钮 ref在DOM上获取的是原生DOM对象 ref在组件上获取的是组件对象 $el 是拿其DOM 这个对象就相当于我们平时玩的this,也可以直接调用函数 $refs ...

卢严砖的博客 265

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Vue.js学习笔记 05、Vue插件使用

文章目录前言一、Vue中的插件1.1、插件的定义与参数认识1.2、编写一些插件的功能二、数据校验插件开发示例 前言 本篇博客是在学习技术胖-Vue3.x从零开始学-第一季 基础语法篇过程中记录整理的笔记,若文章中出现相关问题,请指出! 当前该链接失效了,有需要的小伙伴可以去b站或者技术胖官网去找相应的视频与笔记。 所有博客文件目录索引:博客目录索引(持续更新) 一、Vue中的插件 1.1、插件的定义与参数认识 插件用途:将通用性的功能封装起来。 定义与使用如下: <body> &lt

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 849

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vue的学习笔记:vue插件的使用

插件 功能:用于增强Vue 本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据。 定义插件: export default { install(Vue,x,y,z){ console.log(x,y,z) //全局过滤器 Vue.filter('mySlice',function(value){ return value.slice(0,4) }) //定义全局指令 Vue.directive(

xinbaiyu的博客 359

Vue.js实战学习笔记-----插件

一.概述 Vue.js提供了插件机制,可以在全局添加一些功能。它们可以简单到几个方法、属性、也可以很复杂,比如一整套组件库。 二.注册插件 (1)注册插件需要一个公开的方法install,它的第一个参数是Vue构造器,第二个参数是一个可选的选项对象。 (2)通过Vue.use()来使用插件 Vue.use(MyPlugin) //或 Vue.user(MyPlugin,{ //...

xuan的博客 297

Vue中插件的使用-学习笔记

在组件中我们想要掉用这个name属性时,通过使用vue的getCurrentInstance先获取组件的实例。之后调用实例的appContext下的config.globalProperties.$name获取name属性。为app创建全局的name属性。

jdjks的博客 360

Vue3 学习笔记 —— Hooks、全局函数和变量、Vue3 插件

Vue3 学习笔记 —— Hooks、全局函数和变量、Vue3 插件

Lyrelion的博客 5795

「Vue 学习笔记 2」Vue 调试神器 vue-devtools 插件安装

Vue 调试神器 vue-devtools 插件安装

Dululuya 1374

【Vue】Vue学习笔记——UI组件库和常用插件

Vue学习笔记

lht964249279的博客 1696

Vue学习笔记04 脚手架-插件-混合

文章目录Vue学习笔记04 Vue-cli使用脚手架创建Vue项目render函数 Vue学习笔记04 Vue-cli 使用脚手架创建Vue项目 全局安装@vue/cli,使用vue命令创建Vue项目 需要先安装node,我看的安装教程 安装命令:vue-clicnpm install -g @vue/cli 切换到要创建项目的目录,然后使用命令创建项目vue create xxx 启动项目npm run serve render函数 vue.runtime.xxx.js是运行版的Vue,只包含核心功能没

好好学习天天向上 1802

Vue3 学习笔记(十二)——插件Plugins

1、插件的概念  插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。  1)一个插件可以是一个拥有 install()方法的对象,也可以直接是一个安装函数本身。  2)安装函数会接收到安装它的应用实例和传递给app.use() 的额外选项作为参数。  3)插件的常见使用场景:    ①通过a...

weixin_31861647的博客 226

【vue学习笔记】vue3安装并封装axios插件

vue3安装并封装axios插件

qq_35392791的博客 614

Vue2.6-插件-学习笔记

Vue的插件在项目中经常会被用到,尤其是在全局方法的封装中 <!-- 插件的使用 --> <div id="demo"></div> <script> // 做个插件 var cache = { // 定义唯一的val add(val) { if (val) { ...

qq_42155599的博客 185
上一篇: Vue学习笔记 - 逻辑复用 - 组合式函数
下一篇: Vue 学习笔记 - 内置组件 - Transition
忘川三
博客等级 码龄12年 208粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值