【vue3】封装自定义全局插件
2021/8/20 23:05:40
本文主要是介绍【vue3】封装自定义全局插件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
【vue3】封装自定义全局插件
原vue2方法
main.js
import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' import plugin from './···/plugin/index' //安装自定义的插件 Vue.use(plugin); new Vue({ router, store, render: h => h(App) }).$mount('#app')
index.js
import Plugin from "./Plugin"; const plugin = {}; /** * Vue: 在main.js中Vue.use时会自动传入vue实例作为实参 * 同时会自动执行install函数 */ plugin.install = function(Vue) { //1、创建组件构造器 const pluginConstructor = Vue.extend(Plugin); //2、new的方式,根据组件构造器,可以创建出来一个组件对象 const plugin = new pluginConstructor(); //3、将组件对象,手动挂载到某一个元素上 plugin.$mount(document.createElement("div")); //4、plugin.$el对应的就是上面挂载的div document.body.appendChild(plugin.$el); //5、定义Vue.$plugin的全局访问 Vue.prototype.$plugin = plugin; }; export default plugin; //将plugin导出
plugin.vue(自定义的组件)
<template> <div> </div> </template> <script> export default { name: "Plugin", } </script> <style scoped> </style>
vue3的思路和vue2相同,只是执行的方法有区别。
vue3方法
区别
- use(plugin)自动调用install函数时 vue2: 自动传入Vue实例 vue3: 自动传入App应用实例 - 挂载组件 vue2: Vue.extend(plugin) + 构造器实例化 + 挂载 vue3: createApp(plugin) + 挂载 - 定义全局访问 vue2: Vue.prototype.$plugin vue3: app.config.globalProperties.$plugin
main.js
import { createApp } from 'vue' import App from './App.vue' import router from './router' import store from './store' import plugin from "···/plugin/index"; createApp(App).use(store).use(router).use(plugin).mount('#app');
index.js
import Plugin from "./Plugin"; import {createApp} from 'vue' const plugin = {}; plugin.install = function(app) { //1、实例化并绑定组件 const plugin = createApp(Plugin); const instance = plugin.mount(document.createElement("div")); //2.将挂载的Node添加到body中 document.body.appendChild(instance.$el); //3、定义全局 app.config.globalProperties.$plugin = instance; }; export default plugin;
整体思路相同,可见vue3封装性更强,只需更少的代码。
这篇关于【vue3】封装自定义全局插件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程