首页IT科技vue为什么要用node js(【面试题】为什么有时用Vue.use()?及Vue.use()的作用及原理是什么?)

vue为什么要用node js(【面试题】为什么有时用Vue.use()?及Vue.use()的作用及原理是什么?)

时间2025-05-02 12:50:34分类IT科技浏览3415
导读:Vue.use( 的作用及原理 点击打开视频讲解 在...

Vue.use()的作用及原理

点击打开视频讲解

Vue中引入使用第三方库通常我们都会采用import的形式引入进来 但是有的组件在引入之后又做了Vue.use()操作 有的组件引入进来又进行了Vue.prototype.$axios = axios 那么它们之间有什么联系呢?

例如:Vue.use(VueRouter)          、Vue.use(MintUI)          。但是用 axios时          ,就不需要用 Vue.use(axios)                ,就能直接使用                。那这是为什么呐?

因为 axios 没有 install     。

Vue.use是什么?

官方对 Vue.use() 方法的说明:通过全局方法 Vue.use() 使用插件     ,Vue.use 会自动阻止多次注册相同插件     ,它需要在你调用 new Vue() 启动应用之前完成                ,Vue.use() 方法至少传入一个参数          ,该参数类型必须是 Object 或 Function     ,如果是 Object 那么这个 Object 需要定义一个 install 方法                ,如果是 Function 那么这个函数就被当做 install 方法     。在 Vue.use() 执行时 install 会默认执行          ,当 install 执行时第一个参数就是 Vue,其他参数是 Vue.use() 执行时传入的其他参数                。就是说使用它之后调用的是该组件的install 方法          。

Vue.use()什么时候使用?

ElementUI                、VueRouter等官方插件的使用 在vue官方社区中提供了一系列辅助开发的插件                ,其中就有很多插件具有install方法                , 比如ElementUI和VueRouter,我们使用Vue.use()进行引入     。 import Vue from vue import VueRouter from vue-router; import Element from element-ui Vue.use(VueRouter); Vue.use(Element); 自定义插件          ,并提供install方法 除了使用官方的插件                ,我们也可以自定义一些含有install方法的插件或函数插件

src\main.js

import Vue from vue import App from ./App.vue //引入ElementUI组件库 import ElementUI from element-ui; //引入ElementUI全部样式 import element-ui/lib/theme-chalk/index.css; import {Plugin1,Plugin2} from ./plugins/plugins.js Vue.config.productionTip = false //使用ElementUI Vue.use(ElementUI) Vue.use(Plugin1,参数1) Vue.use(Plugin2,参数2) new Vue({ render: h => h(App), }).$mount(#app)

src\plugins\plugins.js

// 对象形式 const Plugin1 = { install(Vue,b){ console.log(Plugin1 第一个参数:,Vue) console.log(Plugin1 第二个参数:,b) } } // 函数形式 function Plugin2(Vue,b){ console.log(Plugin2 第一个参数:,Vue) console.log(Plugin2 第二个参数:,b) } export{ Plugin1, Plugin2 }

效果:

Vue.prototype作用

vue.prototype是一种注册全局变量的方式     ,使用vue.prototype的变量可以全局访问                。 最典型的例子就是axios          。 import axios from axios; Vue.prototype.$http = axios;

注册了axios之后就能在项目的位置使用了          ,使用的方法:

调用this.$http进行访问。

实际上我们还要注意                ,使用Vue.prototype注册的全局变量前面都要加上$符号     ,这是一种规范     ,主要是为了防止命名冲突                。

Vue.use()和Vue.prototype的区别

Vue.use()用于注册具有install方法的变量                ,注册后install函数会自动调用          ,使得install的具体变量能够全局使用     ,包括全局变量                ,全局标签等等                。

而Vue.prototype就是一个注册全局变量的方法          ,注册的全局的变量以$开头,调用this方法调用。

Vue.use()总结

通过以上分析我们可以知道                ,在我们以后编写插件的时候可以有两种方式          。

一种是将这个插件的逻辑封装成一个对象                ,最后将在 install 编写业务代码暴露给 Vue 对象                。这样做的好处是可以添加任意参数在这个对象上方便将 install 函数封装得更加精简,可拓展性也比较高     。推荐使用object;

还有一种则是将所有逻辑都编写成一个函数暴露给 Vue          。

其实两种方法原理都一样          ,无非第二种就是将这个插件直接当成 install 函数来处理                。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
怎样把mac双系统删除(mac双系统怎么删除一个?苹果mac双系统删除win7方法图文步骤) pta查重按第几次提交的算(PTA作业6-8电信系列总结)