vue中install方法,vue install用法

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: