Vue.use()

作者: Cherry丶小丸子 | 来源:发表于2023-02-05 14:41 被阅读0次

    https://blog.csdn.net/ZYS10000/article/details/107246076/
    https://blog.csdn.net/wswq2505655377/article/details/125148655
    vue源码注释版:https://github.com/qq281113270/vue

    function initUse (Vue) {
    
        // 1. Vue.use是一个函数
        Vue.use = function (plugin) {
    
            // 2. 定义一个数组 如果 this._installedPlugin 不存在,会执行 this._installedPlugins = []
            var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
    
            // 3. 判断是否已经注册了,已经注册了直接 return
            if (installedPlugins.indexOf(plugin) > -1) {
                return this
            }
        
        
            // 4.获取其他参数  例如:Vue.use(plugin,a,b,c) 中的 a b c
            var args = toArray(arguments, 1);
    
            // 5.参数第一项,加一个Vue实例进去
            args.unshift(this);
    
            // 6. plugin 有 install 这个方法
            if (typeof plugin.install === 'function') {
                // 7. 执行一下 instal,再把参数传递进去(可以看插件的 install 方法,接受第一个参数,就是 Vue 实例)
                plugin.install.apply(plugin, args);
            } else if (typeof plugin === 'function') {
                // 8. 如果 plugin 本身就是函数 直接执行
                plugin.apply(null, args);
            }
    
            // 9. 来一个数组存储已经注册的插件
            installedPlugins.push(plugin);
        
            return this
        };
    }
    

    相关文章

      网友评论

          本文标题:Vue.use()

          本文链接:https://www.haomeiwen.com/subject/tlfogrtx.html