年前手下事情少,找了一个下午研究了一下Vue插件开发,首先要感谢B站的前端小野森森-2,借鉴了他的视频,自己也写了一下。把过程记录下来。

首先用vite建一个空项目。

然后新建modules文件夹,和src同级,再在下面建一个插件文件夹yy,本次就用两个插件,一个button,一个input,分将两个文件夹建在yy文件夹下,每个文件夹下新建button.vue和input.vue文件

-- button.vue
<template>
<button><slot></slot></button>
</template> <script>
export default {
name:'yybutton'
}
</script> <style> </style>
-- input.vue
<template>
<input type="text" :value="text" />
</template> <script>
export default {
name:'yyinput',
props:{
text:String
}
}
</script> <style> </style>

在yy文件夹下新建index.js,为main.js中use使用

import button from './button/button.vue'
import input from './input/input.vue' const yy = {}
const yybutton = {}
yybutton.install = Vue => Vue.component(button.name, button) const COMPONENTS = [button, input] yy.install = function (Vue, options) {
COMPONENTS.forEach((component) => {
Vue.component(component.name, component);
})
} export default yy --抛出所有
export { yybutton } --按需添加

其中yybutton抛出是可以进行按需加载,而yy是总的插件包。有新插件时在index.js中进行添加。

然后在main.js中use

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import { yybutton } from '../modules/yy'
import yy from '../modules/yy'; createApp(App).use(yy).mount('#app')

这里的use(yy)是加载所有的,也可以use(yybutton)进行按需添加。

最后在app.vue中使用,就完成了。

<script setup>
</script> <template>
<div>
<yybutton>我的按钮</yybutton>
<yyinput text="我的input"></yyinput>
</div>
</template>

源码下载地址:https://pan.baidu.com/s/12nzjKALNbxju7t_kZ4Dejg 提取码: qtgc

Vue插件开发,全局插件和按需加入插件的更多相关文章

  1. Vue中全局导入和按需导入的区别

    export {router} //按需导出 import {router} from './router' //按需导入路由模块 export default //全局导出store模块 store ...

  2. vue项目引用 iView 组件——全局安装与按需加载

    框架的热度,出现了不少基于Vue的UI组件库,这次项目用到了 iView 这个组件库.使用方法官网很详细. 官网:https://www.iviewui.com/ 这篇文章主要是记录一下npm 全局安 ...

  3. vue自定义全局组件(自定义插件)

    有时候我们在做开发的时候,就想自己写一个插件然后就可以使用自己的插件,那种成就感很强.博主最近研究element-ui和axios的时候,发现他们是自定义组件,但是唯一有一点不同的是,在用elemen ...

  4. vue插件开发实践与要点

    其实就跟组件差不多意思,组件也可以实现相关的效果,但要在用到的地方都引用插件就可以全局注册,不需引用 试着撸一个插件,有2个功能,提示和对话框 网上找了个toast插件的代码,改了改,扩展加了个dia ...

  5. Vue+element搭建后台管理系统-二、安装插件

    我们继续上一章的内容,上一章讲到我们已经能将项目成功跑起来了,那么我们接下来把项目必用的东西完善一下. 一.安装elementUI 终于到了我们的男二了,继续在VSCode中新建一个终端,然后通过这个 ...

  6. vue入门全局配置

    全局配置 Vue.config 是一个对象,包含 Vue 的全局配置.可以在启动应用之前修改下列属性: silent 类型:boolean 默认值:false 用法: Vue.config.silen ...

  7. [转]Vue项目全局配置微信分享思路详解

    这篇文章给大家介绍了vue项目全局配置微信分享思路讲解,使用vue作为框架,使用vux作为ui组件库,具体内容详情大家跟随脚本之家小编一起学习吧 这个项目为移动端项目,主要用于接入公众号服务.项目采用 ...

  8. vue 定义全局函数,监听android返回键事件

    vue 定义全局函数,监听android返回键事件 方法一:main.js 注入(1)在main.js中写入函数Vue.prototype.changeData = function (){ aler ...

  9. 生命周期函数以及vue的全局注册

    beforeCreate 在创造实例之前 created 创造实例以后 beforeMount 在挂载前 render 渲染节点到页面上 //将虚拟dom数组渲染出来 mounted 挂载以后 bef ...

  10. Vue中的v-model与my97日期选择插件冲突

    Vue中的v-model指令只是一个语法糖,其具体实现是:监听input框的input事件,然后将用户输入的值赋值给input框的value属性 <input type="text&q ...

随机推荐

  1. Node Sass version 7.0.1 is incompatible with ^4.0.0 node-sass 问题

    执行旧版项目安装依赖时报错 卸载 npm uninstall node-sass sass-loader 安装(need Python27) npm install sass-loader@7.3.1 ...

  2. 【IDEA】测试类(test)的模板及定义

    人和动物的区别是:能制造和使用工具.因为,工具大大便利了我们的生活. 我们在使用Idea开发java项目的过程中,有些代码是固定的,我们能不能只写几个字,就代表一连串的代码.例如,这里,我们只是输入了 ...

  3. openwrt从gitee pull代码并编译go项目

    安装ssh opkg update # openssh-keygen 可以用来生产密钥 opkg install openssh-keygen # 连接其他服务器 opkg install opens ...

  4. 目标检测yolov5检测火龙果

    一.github官方网址 https://github.com/ultralytics/yolov5/tree/v6.1 二.labelme标记数据集: (1).进入虚拟环境 (2).pip inst ...

  5. 【Docker】清理磁盘占用

    查看磁盘空间占用 # /var/lib/docker # du -sh * 快速清理 简单清除不使用的镜像及容器 docker system prune docker system prune -a ...

  6. 操作系统 windos

  7. 莫凡Python之keras 2

    莫凡Python 2 kearsregressionpython Classifier 分类 使用 mnist 数据集,这是0-9的图片数据,我们使用神经网络去识别这些图片.显示图片上的数据 本质上是 ...

  8. RTSP配置海康相机视频

    RTSP:即时串流协定(Real Time Streaming Protocol,RTSP)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制. 1.获取海康相机ip地址 (1).下载海 ...

  9. Windows Powershell个性化设置

    1. 设置Powershell prompt只显示当前目录: 2. 设置Powershell title为当前路径: 这个文件的路径为:echo $profile # file location:ec ...

  10. Unity学习笔记——坐标转换(2)

    子物体与父物体 子物体与父物体的关系类似于人与地球的关系,地球无论自转还是公转,对于地球上的我们来说,前后左右的方向不会变,因此在Unity中当我们旋转或是移动父物体时,子物体跟随父物体变化,但tra ...