两者的区别
- 组件注册通过“Vue.component”或“components”属性,而插件通过“Vue.use()”;
- 组件是用来构成App的业务模块,它的目标是“App.vue”,而插件是用来增强技术栈的功能模块,它的目标是Vue本身
组件
- 创建一个组件.vue文件
- 在App.vue文件中导入组件
import TabsCom from "@/components/TabsCom.vue";
export default {
components: {
TabsCom,
},
};
<template>
<div id="app">
<router-view class="pages has-tabs"></router-view>
<tabs-com class="tabs"></tabs-com>//<TabsCom></TabsCom>也可以
</div>
</template>
插件
- 插件(Plugins)是一种能为Vue添加全局功能的工具代码。
- 创建一个插件
<template>
<div class="toast" v-if="msg">
{{ msg }}
</div>
</template>
<script>
export default {
data() {
return {
msg: "",
};
},
methods: {
show(str = "加载中...") {
this.msg = str;
setTimeout(() => this.hide(), 2000);
},
hide() {
this.msg = "";
},
},
};
</script>
<style scoped>
.toast {
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
padding: 15px;
border-radius: 4px;
color: #fff;
background-color: rgba(0, 0, 0, 0.4);
z-index: 100000;
}
<style>
- 插件是一个对象,必须实现install办法
- 插件需要在vue文件中使用Vue.use(插件)
- 插件方法 Vue.extent(.vue)继承.vue文件的构造函数
- install.$mount(dom)手动挂载
- instance.$el实例的真实dom
- Vue.protoytpe.$toast=Toast 将插件挂载到全局(所有的组件都将拥有插件的方法和属性)
index.js
import ToastVue from './ToastCom.vue'
var Toast = {}
Toast.install = function (Vue) {
var ToastCom = Vue.extend(ToastVue);
var instance = new ToastCom();
instance.$mount(document.createElement("div"));
document.body.appendChild(instance.$el);
Toast.show = instance.show;
Toast.hide = instance.hide;
Vue.prototype.$toast = Toast;
}
export default Toast
main.js
import Toast from '.ugin/Toast/index.js'
import Notify from '.ugin/Notify/index.js'
Vue.use(Toast)
Vue.use(Notify)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统