Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Linux

  • Java

  • 微服务笔记

  • MySQL

  • Nginx

  • HTML

  • CSS

  • JavaWeb

  • Vue

    • Start
    • Node和NPM
    • 快速入门
    • Vue实例
    • 组件化
    • 模块化
    • webpack
    • vue-cli
    • Promies
    • Vuex
    • Axios
    • vue-router
    • ref $refs(元素、组件引用 )
    • 生命周期
    • Mix(混入)配置项
    • 安装插件 use()
      • 编写插件
        • 使用插件
        • 变更
        • 语法
        • 介绍
        • 实例:在插件中注册全局组件
    • 功能样式
    • 项目开发配置
    • 样式绑定
    • 事件
  • Git

  • 开发规范

  • SpringCloud微服务权限系统

  • bug

  • Software

  • ProgramNotes
  • Vue
Geeks_Z
2022-10-28
目录

安装插件 use()

插件

插件是自包含的代码,通常向 Vue 添加全局级功能。它可以是公开  install()  方法的  object,也可以是  function 。

功能:用于增强 Vue

本质:包含 install 方法的一个对象,install 的第一个参数是 app,第二个以后的参数是插件使用者传递的数据。

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

  1. 添加全局方法或者 property。如**:vue-custom-element (opens new window)**
  2. 添加全局资源:指令/过渡等。如**:vue-touch (opens new window)**)
  3. 通过全局 mixin 来添加一些组件选项。(如**vue-router (opens new window)**)
  4. 添加全局实例方法,通过把它们添加到  config.globalProperties  上实现。
  5. 一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如  vue-router (opens new window)

编写插件

每当插件被添加到应用程序中时:如果它是一个对象,就会调用  install  方法;如果它是一个  function,则函数本身将被调用。在这两种情况下——它都会收到两个参数:由 Vue 的  createApp  生成的  app  对象和用户传入的选项 **options**。

  1. 创建插件

    // plugins/i18n.js
    export default {
      install: (app, options) => {
        // Plugin code goes here
      },
    }
    
    1
    2
    3
    4
    5
    6
  2. 插件中可以访问  app  对象,因而可以使用所有的应用 API,例如  mixin  和  directive。

    // plugins/i18n.js
    export default {
      install: (app, options) => {
    		// .....
    
        app.directive('my-directive', {
          mounted (el, binding, vnode, oldVnode) {
            // some logic ...
          }
          ...
        })
    
        app.mixin({
          created() {
            // some logic ...
          }
          ...
        })
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

使用插件

在使用  createApp()  初始化 Vue 应用程序后,可以通过调用  use()  方法将插件添加到应用程序中。

use()  方法有两个参数。第一个是要安装的插件。它还会自动阻止多次使用同一插件,因此在同一插件上多次调用只会安装一次该插件。

第二个参数是可选的,并且取决于每个特定的插件。

// 例: main.js
import { createApp } from 'vue'
import Root from './App.vue'
import i18nPlugin from './plugins/i18n'

const app = createApp(Root)
const i18nStrings = {
  greetings: {
    hi: 'Hallo!',
  },
}

app.use(i18nPlugin, i18nStrings)
app.mount('#app')
1
2
3
4
5
6
7
8
9
10
11
12
13
14

awesome-vue (opens new window)  集合了大量由社区贡献的插件和库。

安装插件 use()

变更

在 vue2.x 是Vue.use(), 在 vue3.x 后变为 app.use()

语法

  • 参数****:
    • {Object | Function} plugin
    • ...options (可选)
  • 返回值:
    • 应用实例
const app = createApp({})
app.use(VueRouter).use(Vuex).use(ElementUI)
1
2

介绍

用来**安装 Vue.js 插件 (opens new window)。**例如 ElementUI, Router, Vuex 等部分第三方库、组件、自定义方法都需要这样引入。

  • 如果插件是一个对象,则它必须暴露一个  install  方法。
  • 如果插件本身是一个函数,则它将被视为  install  方法。该  install  方法将以应用实例作为第一个参数被调用,传给  use  的其他  options  参数将作为后续参数传入该安装方法。也就是说:
    1. Vue.use 参数为函数(插件为函数)时,函数的第一个参数是 Vue 对象
    2. Vue.use 参数为对象(插件为对象)时,它提供的 install 方法中第一个参数是 Vue 对象

当在同一个插件上多次调用此方法时,该插件将仅安装一次。

实例:在插件中注册全局组件

  1. Vue.use 参数为对象(插件为对象):

    // MyPlugin.vue
    import PageTools from './PageTools'
    
    const demo = {
      // 参数为对象时,需要提供install方法
      install: app => {
        app.component('PageTools', PageTools)
      },
    }
    export default demo
    
    // main.js
    import { createApp } from 'vue'
    import MyPlugin from './plugins/MyPlugin'
    
    const app = createApp({})
    
    app.use(MyPlugin)
    app.mount('#app')
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
  2. Vue.use 参数为函数(插件为函数):

    // MyPlugin.vue
    import PageTools from './PageTools'
    export default {
      install: (app) {
        app.component('PageTools', PageTools)
      }
    
    // main.js
    import { createApp } from 'vue'
    import MyPlugin from './plugins/MyPlugin'
    
    const app = createApp({})
    
    app.use(MyPlugin)
    app.mount('#app')
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
  3. 传入自定义参数

    // MyPlugin.vue
    import PageTools from './PageTools'
    export default {
      install: (app, a, b, c) {
        app.component('PageTools', PageTools)
      }
    
    // main.js
    import { createApp } from 'vue'
    import MyPlugin from './plugins/MyPlugin'
    
    const app = createApp({})
    
    app.use(MyPlugin, 1, 2, {age:'23'})  // 安装自定义插件
    app.mount('#app')
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

Vue3.0 app.use() 注册全局组件_辛娟娟的博客-CSDN 博客_app.use(store) (opens new window)

Vue.use 的使用和基本原理_Boale_H 的博客-CSDN 博客_createapp vue.use (opens new window)

上次更新: 2025/02/26, 08:57:57
Mix(混入)配置项
功能样式

← Mix(混入)配置项 功能样式→

最近更新
01
RAIL
02-26
02
IOCTF
02-25
03
DGM
02-25
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式