返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue.use()的作用及原理解析
  • 346
分享到

Vue.use()的作用及原理解析

2024-04-02 19:04:59 346人浏览 独家记忆
摘要

目录前言Vue.use是什么?Vue.use() 的源码中的逻辑Vue.use()什么时候使用?前言 最近帮忙面试前端的时候,就随口一问,发现很多2年以上的vue开发者说不出vue.

前言

最近帮忙面试前端的时候,就随口一问,发现很多2年以上的vue开发者说不出vue.use()为什么用,什么时候用,原理是什么
所以我整理一下网上的资源,写一篇毕竟容易理解的文章

在Vue中引入使用第三方库通常我们都会采用import的形式引入进来,但是有的组件在引入之后又做了Vue.use()操作,有的组件引入进来又进行了Vue.prototype.$something = something,那么它们之间有什么联系呢?

先说一下Vue.prototype,在Vue项目中通常我们引入axiOS来进行请求接口数据,通过npm安装之后我们只需在我们的文件中import axios from "axios"就可以使用,有时候我们会加上一句Vue.prototype.$axios = axios,prototype我们应该是再熟悉不过了

Vue.prototype.axios,通过我们会在全局注册这个方法,然后在周后的文件中都可以通过$axios直接来使用axios

Vue.use是什么?

官方对 Vue.use() 方法的说明:通过全局方法 Vue.use() 使用插件,Vue.use 会自动阻止多次注册相同插件,它需要在你调用 new Vue() 启动应用之前完成,Vue.use() 方法至少传入一个参数,该参数类型必须是 Object 或 Function,如果是 Object 那么这个 Object 需要定义一个 install 方法,如果是 Function 那么这个函数就被当做 install 方法。在 Vue.use() 执行时 install 会默认执行,当 install 执行时第一个参数就是 Vue,其他参数是 Vue.use() 执行时传入的其他参数。就是说使用它之后调用的是该组件的install 方法。

Vue.use() 的源码中的逻辑

export function initUse (Vue: Globalapi) {
 Vue.use = function (plugin: Function | Object) {
  const installedPlugins = (this._installedPlugins || (this._installedPlugins = []))
  if (installedPlugins.indexOf(plugin) > -1) {
   return this
  }
  const args = toArray(arguments, 1)
  args.unshift(this)
  if (typeof plugin.install === 'function') {
   plugin.install.apply(plugin, args)
  } else if (typeof plugin === 'function') {
   plugin.apply(null, args)
  }
  installedPlugins.push(plugin)
  return this
 }
}

在源码中首先限制了它传入的值的类型只能是Function或者Object,然后判断了该插件是不是已经注册过,防止重复注册,然后调用了该插件的install方法,源码中也有介绍到Vue.use()可以接受多个参数的,除第一个参数之后的参数我们都是以参数的形式传入到当前组件中。

Vue.use()什么时候使用?

它在使用时实际是调用了该插件的install方法,所以引入的当前插件如果含有install方法我们就需要使用Vue.use(),例如在Vue中引用Element如下:

import Vue from 'vue'
import Element from 'element-ui'
Vue.use(Element)

因为在Element源码中会暴露除install方法,所以才需要用Vue.use()引入。

我们也可以在自己的vue项目中自己定义一个install方法,然后通过Vue.use()方法来引入测试一下:

const plugin = {
  install() {
    alert("我是install内的代码")
  },
}
import Vue from "vue"
Vue.use(plugin) // 页面显示"我是install内的代码"

当我们打开页面就会弹出“我是install内的代码”提示。

到此这篇关于Vue.use()的作用及原理解析的文章就介绍到这了,更多相关Vue.use()作用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue.use()的作用及原理解析

本文链接: https://lsjlt.com/news/166622.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue.use()的作用及原理解析
    目录前言Vue.use是什么?Vue.use() 的源码中的逻辑Vue.use()什么时候使用?前言 最近帮忙面试前端的时候,就随口一问,发现很多2年以上的vue开发者说不出vue....
    99+
    2024-04-02
  • Vue中Vue.use()的原理及基本使用
    目录前言1. 举例理解 2. 分析源码 3. 小结 总结前言 相信很多人在用 Vue 使用别人的组件时,会用到 Vue.use() 。例如:Vue.use(VueRouter)、Vu...
    99+
    2024-04-02
  • JavaWebServletConfig作用及原理分析讲解
    目录基本概念servlet 关系servletconfig 作用使用获取 config 基础信息携带信息基本概念 servlet 关系 servlet 和 servletconfig...
    99+
    2024-04-02
  • PHP转义符的作用及原理解析
    PHP转义符的作用及原理解析 在 PHP 中,转义符(Escape Characters)是用来处理特殊字符的一种方法。通过转义符,我们可以在字符串中插入一些特殊字符,使得这些字符不会...
    99+
    2024-04-02
  • Spring中@DependsOn注解的作用及实现原理解析
    本文给大家讲解Spring中@DependsOn注解的作用及实现原理! 官方文档解释 Beans on which the current bean depends. Any be...
    99+
    2024-04-02
  • Pinia介绍及工作原理解析
    目录什么是Pinia如何使用Pinia安装创建store在组件中使用store在模板中使用storePinia是如何工作的什么是Pinia Pinia是Vue 3的状态管理库,它提...
    99+
    2023-03-06
    Pinia工作原理 Pinia原理
  • Vue.use()的用法和install的用法解析
    目录Vue.use()和install用法介绍为什么这样做?Vue.use为什么要使用install疑问从源码分析vue官网是这样说的Vue.use()和install用法 介绍 在...
    99+
    2024-04-02
  • 解析Vue.use()是干什么的
    目录1. Vue.use是什么,了解一下!1.1 main.js中的Vue.use()1.2 简单解释一下这里的import的逻辑,1.3 Vue.use()代码2. 看一下 vue...
    99+
    2024-04-02
  • Vue.use的作用是什么
    本篇内容介绍了“Vue.use的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在使用 Eleme...
    99+
    2024-04-02
  • 详解SpringBootStarter作用及原理
    目录前言什么是 StarterStarter 的作用spring 整合组件spring-boot 整合组件Starter 原理前言 有没有在入行后直接基于 SpringBoot 开发...
    99+
    2023-05-17
    SpringBoot Starter作用原理 SpringBoot Starter作用 SpringBoot Starter原理
  • Vue.use的原理和设计源码探究
    目录前言基本使用源码解析控制反转前言 这段时间打算回顾一下Vue的全局方法,脑海里第一个跳出来的方法就是Vue.use,之所以会首先想到它,我觉得和我平时看的面试题相关~~~ Vu...
    99+
    2023-02-09
    Vue.use原理设计 Vue.use设计
  • JavaScript闭包原理及作用的示例分析
    小编给大家分享一下JavaScript闭包原理及作用的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!简介说明本文介绍JavaScript的闭包的作用、用途及其原理。闭包的定义闭包是指内部函数总是可以访问其所在的外部...
    99+
    2023-06-22
  • Vue中key的作用及原理详解
    目录1. 先说结论2. key的作用2.1 举一个例子2.2 修改一下上述示例2.3 再修改一下示例3. key的实现原理1. key为index的情况。2. key为id的情况。总...
    99+
    2024-04-02
  • .NET中的HashSet及原理解析
    目录哈希表原理HashSet实现总结参考文章在.NET中,System.Collection及System.Collection.Generic命名空间中提供了一系列的集合类,Has...
    99+
    2024-04-02
  • Spring注解@Scope原理及用法解析
    Spring注解@Scope用于指定bean的作用域,即bean的生命周期。@Scope注解有以下几个常用的取值:1. single...
    99+
    2023-08-17
    Spring
  • Linux NFS机制工作原理及实例解析
    什么是NFS? network file system 网络文件系统 通过网络存储和组织文件的一种方法或机制。 为什么要用NFS? 前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一放到后...
    99+
    2022-06-03
    Linux NFS机制
  • 一文解析Golangsync.Once用法及原理
    目录前言1. 定位2. 对外接口3. 实战用法3.1 初始化3.2 单例模式3.3 关闭channel4. 原理5. 避坑前言 在此前一篇文章中我们了解了 Golang M...
    99+
    2024-04-02
  • JavaScript闭包原理及作用详解
    目录简介闭包的用途柯里化实现公有变量缓存封装(属性私有化)闭包的原理垃圾收集简介实际开发中的优化简介 说明 本文介绍JavaScript的闭包的作用、用途及其原理。 闭包的定义 闭包...
    99+
    2024-04-02
  • BeegoAutoRouter工作原理解析
    目录一、前言 二、从一个例子入手✨AutoRouter的解析规则:三、AutoRouter是如何工作的结语一、前言 Beego Web框架应该是国内Go语言社区第一个框架,个人觉得...
    99+
    2024-04-02
  • reactSuspense工作原理解析
    目录Suspense 基本应用Suspense 原理基本流程源码解读 - primary 组件源码解读 - 异常捕获源码解读 - 添加 promise 回调源码解读-Suspense...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作