Vue学习笔记 - 插件

基于深度学习的UWB门禁检测 针对基于UWB技术智能门禁管理系统,由于测距误差或非视距原因导致门禁产生不合理动作的现象。分析如何采用基于深度学习的方法,通过对TWR测距数据、TWR监听数据、到达角度差(PDOA)、信道脉冲响应(CIR)等数据维度进行深度学习,利用 TensorFlow建立相应的推导模型,对卡片姿态进行更加精准可靠的检测,从而更好完成闸机开合控制。 阅读详情

介绍

插件 (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() 方法
Unity零基础到入门 ☀️| 近万字教程 对 Unity 中的 动画系统基础 全面解析+实战演练,你确定要错过吗? Unity动画系统,Animation,Animator。 本文对Unity中的动画系统基础做了一个全面解析,还包括实战演练。近万字教程让你对Unity的动画系统有一个系统的了解,敬请品尝! 阅读详情

相关推荐

修改串口服务器,串口虚拟化 | 串口服务器Nport 5630 设置

原标题:串口虚拟化 | 串口服务器Nport 5630 设置JZGKCHINA项目改造,客户需要对IFix4.5进行升级,并优化通讯,在不改变原来配置的基础上逐步进行替换。需要将IFix升级到IFix5.9,数据库升级为SQL Server 2016,客户现场使用的智能仪表都是支持Modbus RTU协议的,因原来的手拉手的通讯方式的,当一台仪表掉线后,会影响到其他仪表的通讯,所以此次在不改变原有...

weixin_31688465的博客 2408

纯vue实现笔记系统

只用vue前端实现笔记系统

xc9711的博客 2448

使用Kettle进行数据同步(增量)

文章目录kettle介绍kettle安装kettle使用使用kettle同步关系型数据库数据(MySQL示例)1. 创建一个转换2. 选择表输入3. 格式转换4. 执行脚本5. 创建job使用kettle同步NoSql数据(MongoDB示例)创建转换时的注意事项MongoDBInput怎么创建job的创建如何在Linux上面运行已经创建好的job?1、把创建好的job传输到Linux机器上面2、编辑kjb文件3、执行任务 kettle介绍 Kettle 是一款国外开源的 ETL 工具,纯 Java 编写

JenKin的博客 7351

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

Python逆向爬取Tik Tok,MsToken,X-Bogus以及signature

tiktok作为字节海外的自媒体平台,具有很非常大的价值,本文旨在教会大家实现Tik Tok的签名获取以及数据的最终爬取。

weixin_74305707的博客 3270

解锁RK3588:内核模块签名与安全启动配置全攻略

RK3588作为一款高性能嵌入式SoC芯片,其内核模块签名与安全启动配置是保障系统安全的核心机制。本文详细介绍了RK3588的芯片特性,重点阐述了安全启动的硬件信任链原理和内核模块签名的实现方法。通过具体步骤演示了从密钥生成、模块签名到验证加载的完整流程,并深入解析了安全启动配置的硬件连接、软件工具准备、密钥烧录等关键环节。此外,还提出了防御旁路攻击和动态信任链扩展等高级安全策略,为RK3588在工业控制、智能安防等高安全要求场景中的应用提供了全面的安全解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 347

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

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

chuangtxj123的博客 1831

【系统分析师】核心考点:100个高频知识点汇总

本文系统梳理了系统分析师考试的11大领域高频考点,重点解析了计算机硬件与体系结构的7个核心知识点:计算机五大部件(CPU/存储器/总线等)、校验码类型(奇偶/海明/CRC)、CISC与RISC指令系统对比、总线分类与特性、RAID磁盘阵列级别、流水线技术原理及Flynn系统分类法。内容涵盖硬件组成、数据校验、指令架构、存储技术等关键概念,通过表格对比和公式说明,为考生提供结构化的知识框架与备考重点。

数据知道的博客 5569

Vue 插件及Vue.use源码分析

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

wanda000的博客 281

基于 FPGA Vivado 信号发生器设计(附源工程)

今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手basys3开发板的,可以联系牛总:18511371833。话不多说,上货。 本篇掌握基于 FPGA Vivado 信号发生器设计(附源工程),掌握基于添加文件和IP的Vivado工程设计流程,掌握基于Tcl的Vivado工程设计流程,学习信号发生器的基本组成结构。获取本篇相关源工程代码,可在公众号内回复“信号发生器设计源工程”。 设计原理 信号发生器...

7990

【PostgreSQL】PostgreSQL数据库函数比对模板(PG通用)

LOOKUP 函数从单行或单列区域 (区域:工作表上的两个或多个单元格。区域中的单元格可以相邻或不相邻。)或数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。LOOKUP 函数具有两种语法形式:向量形式和数组形式。vlookup查找匹配值超过255个字符显示#Value的解决办法。如果值为错误值 #N/A,则返回 TRUE。

tttzzzqqq2018的博客 1494

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

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

BradenHan的专栏 2847

C#跨平台制图新纪元:Mapsui,一库在手,地图我有

深入学习Mapsui的渲染机制,定制属于你的地图样式,无论是颜色、图标还是文字,都可以随心所欲。

java专栏 1457

Vue学习笔记——12.插件

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

XHY的博客 184

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Vue学习笔记3—Vue插件

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

卢严砖的博客 265

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

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

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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、付费专栏及课程。

余额充值