广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue3.0插件执行原理与实战
  • 367
分享到

Vue3.0插件执行原理与实战

2024-04-02 19:04:59 367人浏览 薄情痞子
摘要

目录一、编写插件1.1 包含install()方法的Object1.2 通过function的方式二、使用插件三、app.use()是如何执行插件的一、编写插件 Vue项目能够使用很

一、编写插件

Vue项目能够使用很多插件来丰富自己的功能,例如Vue-Router、Vuex……,这么多插件供我们使用,节省了我们大量的人力和物力,那这些插件是开发出来的呢?是不是我们自己也想拥有一个属于自己的vue插件,下面就展示一下如何写一个自己的Vue插件。

1.1 包含install()方法的Object

Vue插件可以是一个包含install方法的Object对象,此时插件被调用时会调用install方法,

如下所示:

export default {
    // 接收两个参数
    // app: 应用上下文的实例
    // options:插件输入的选项
    install: (app, options) => {
        console.log('app', app);
        console.log('options', options);
        // 做一些处理
        // ……
    }
}

1.2 通过function的方式

Vue插件也可以是一个function函数,此时插件被调用时会调用function函数本身,

如下所示:

export default function TestPlugin(app, options) {
    console.log('app', app);
    console.log('options', options);
}

二、使用插件

上述已经阐述了如何编写自己的插件,插件编写完了之后就需要使用这些插件了,那这些插件应该如何使用呢?其实用起来很简单,应用上下文的实例上提供了对应的use方法。

app.use(plugin, [options]); // 返回一个应用实例,所以其可以链式添加新的插件

三、app.use()是如何执行插件的

为什么app.use()可以使用这些插件呢?本着“知其然而知其所以然”的精神,一起来扒一扒为什么。如下是对应的源码

function createApp(rootComponent, rootProps = null) {
    // ……
    const installedPlugins = new Set();
    const app = (context.app = {
        // ……
        use(plugin, ...options) {
            if (installedPlugins.has(plugin)) {
                warn(`Plugin has already been applied to target app.`);
            }
            else if (plugin && shared.isFunction(plugin.install)) {
                installedPlugins.add(plugin);
                plugin.install(app, ...options);
            }
            else if (shared.isFunction(plugin)) {
                installedPlugins.add(plugin);
                plugin(app, ...options);
            }
            else {
                warn(`A plugin must either be a function or an object with an "install" ` +
                    `function.`);
            }
            return app;
        },
        // ……
    });
    return app;
};

上述代码读起来很简单,其实现了以下几件事情:

  • 利用Set结构存储插件,当存在该插件时抛出异常;
  • 通过判断是否存在install方法或是否是函数,执行对应的插件;
  • 执行插件时将app上下文实例和options作为参数传入;

 到此这篇关于vue3.0插件执行原理与实战的文章就介绍到这了,更多相关Vue插件执行原理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue3.0插件执行原理与实战

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作