vue中install方法,vue install用法
本文主要介绍对Vue的插件机制和安装的深入了解。它主要解释了install函数可以做什么,如何在内部实现install函数,
Vue,Vue-Router插件在安装期间做了什么?供各位朋友参考。
前言:
我们在使用Vue的时候,经常会使用和编写一些自定义插件,然后用Vue.use来介绍。所以在编写插件的时候,安装方法是必不可少的。Vue.js的插件应该公开一个安装方法。此方法的第一个参数是“vue”构造函数,第二个参数是可选的option对象。这是Vue官方对Vue插件的规范。这个安装功能到底是什么?Vue用它做了什么,怎么叫?今天我就从源头层面给大家说清楚。
看完这篇文章,你将学到:
安装功能可以做什么;
如何在内部实现安装;
Ex,Vuex-router插件在安装期间做了什么;
好了,事不宜迟,直接开始吧!
一、install在VuexVue-Router中的处理
这里先抛出两个问题,大家可以思考下,算是挖坑,下面再逐一解答:
为什么我们可以在项目中直接使用$router $store来获取值和一些方法;
为什么这两个插件都是先用Vue.use引入的?然后创建一个实例,在Vue实例中传入;
二者其实原理相同,这里我们用Vue-Router来举例,首先我们来看一下它内部install的具体实现:
类路由器{
构造函数(选项){
.
}
}
Router.install=function(_Vue) {
_Vue.mixin({
创建之前(){
如果(这个。$options.router) {
_Vue.prototype.$router=this。$options .路由器
}
}
})
}
导出默认路由器;
什么是_Vue.mixin全球混音?相当于把这种方法混合在所有组件中;
以前是什么?当然是Vue的一个生命周期,在create之前执行;
既然如此,我们就大胆判断一下吧。Vue-Router实际上在安装功能中使用了全局混合。当beforeCreate的生命周期被触发时,此。$options.router安装在Vue的原型上,这样我们就可以用这个了。$router来调用路由器实例。同学:等等,停!我对你所说的感到抱歉,但是这个。$options.router这是什么,从哪里来的?
安,我们刚刚解决了第一个问题。让我们填第二个洞。
我们通常使用Vue-Router,定义入口文件的Vue实例看起来是这样的。
//路由器/index.js
从“vue-router”导入VueRouter
从“Vue”导入Vue;
vue . use(vue router);
const _router=[
.
]
const Router=new vue Router(_ Router);
导出默认路由器;
//main.js
从“Vue”导入Vue;
从“路由器”导入路由器;
新Vue({
路由器,
.
}).$ mount( # app );
结合最开始的例子,我们先来分析一波。
Vue.use()主要调用插件内部的install方法,并将Vue实例作为参数传入;
以上是这个。$options.router,而options通常代表配置项;
在main.js中,我们将路由器实例作为配置项传递给Vue实例。
丁!元素,那我们就大胆推测一波吧。Vue-Router的第一次使用,其实是全球混搭。为了在合适的时间点获得Vue根实例的配置项中的路由器实例,挂载它。在new Vue()的根实例被创建后,路由器实例立即被注入,然后触发全局融合的生命周期。此时,配置项this。根实例的$options已经包含了路由器实例,最后挂载过程完成!单单这一段代码也是逻辑缜密,编程思路巧妙,让人称之为专家!萌哥,打公屏专家,hhhh。
二、install在Vue中的内部实现
看了常用库安装的使用,不知道大家有没有收获。接下来,预热结束后,我们可以开始看一下install的内部实现,先加载源代码。
导出函数initUse (Vue: GlobalAPI) {
//注册安装在实例上的使用方法
Vue.use=function(插件:函数对象){
//初始化当前插件的数组
const installedPlugins=(this。_installedPlugins (this。_installedPlugins=[]))
//如果这个插件已经注册了,就不会被处理。
if(installed plugins . index of(plugin)-1){
归还这个
}
.
//重点来了!
if(type of plugin . install=== function ){
//当install是插件中的函数时,调用install方法,指向插件,传入若干参数。
plugin.install.apply(插件,参数)
} else if(插件类型===函数){
//当插件本身是一个函数时,用它作为安装方法,指向插件,传入若干参数。
plugin.apply(null,args)
}
//将插件放入插件数组
installedPlugins.push(插件)
归还这个
}
}
这部分源代码简洁,可读性强。使用时,判断插件类型,执行安装或插件本身。其实,细化官网的解释,类的插件要暴露一个安装方法。
结论:
不知道大家对Vue的外挂机制有没有更深入的了解?实际上,在开发插件时,我们可以通过使用install来做许多其他事情。例如,Vue-Router实际上在install中注册了Router-view和Router-link的全局组件。
这篇关于深入理解Vue的插件机制和安装的详细文章到此结束。想要深入了解Vue的插件机制和安装内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。