如何开发 Vue 插件?

简介: 创建一个插件(组件)目录结构:在src目录下创建一个plugins目录,写我们的button组件

如何开发 Vue 插件?



创建一个插件(组件)


目录结构:在src目录下创建一个plugins目录,写我们的button组件


09d4d862e0cb2e95d282fbf02d2c2b9e.png


// src/plugins/button/src/index.vue
<template>
    <button class="create-btn primary">
        <span>
            <slot></slot>
        </span>
    </button>
</template>
<script>
    export default {
        name: 'CreateButton'
    }
</script>
<style scoped>
.create-btn {
    display: inline-block;
    line-height: 1;
    cursor: pointer;
    background: #fff;
    border: 1px solid #dcdfe6;
    color: #606266;
    text-align: center;
    box-sizing: border-box;
    outline: none;
    margin: 0;
    transition: 0.1s;
    font-weight: 500;
    padding: 12px 20px;
    font-size: 14px;
    border-radius: 4px;
}
.primary {
    color: #fff;
    background-color: #409eff;
    border-color: #409eff;
}
</style>


2、给该插件添加一个install方法


install方法里编写相关的注册逻辑,比如:把该插件注册为全局组件,这样就可以在整个项目中使用了。


// src/plugins/button/index.js
import CreateButton from './src/index'
// 给CreateButton对象添加intall方法
CreateButton.install = function(Vue) {
    // 给Vue注册名为'CreateButton'全局组件
    Vue.component(CreateButton.name, CreateButton)
}
// 导出该对象
export default CreateButton


3、在实例化Vue前,使用Vue.use(插件) 注册你的插件。


使用Vue.use,传入CreateButton即完成注册, 它的作用是调用传入CreateButton对象的install方法


// main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import CreateButton from './plugins/button/index.js' // 导入插件
// 使用Vue.use,传入CreateButton即完成注册
// 它的作用是调用传入CreateButton对象的install方法
Vue.use(CreateButton)
Vue.config.productionTip = false
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')


4、测试使用


// App.vue
<template>
  <div id="app">
    <Create-Button>按钮</Create-Button>
  </div>
</template>


效果:


8f0170bdebc8b4b3086513eff5f97080.png

目录
相关文章
|
8月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
467 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
9月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
368 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
10月前
|
存储 设计模式 JavaScript
Vue 组件化开发:构建高质量应用的核心
本文深入探讨了 Vue.js 组件化开发的核心概念与最佳实践。
774 1
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发
|
JavaScript 前端开发 测试技术
组件化开发:创建可重用的Vue组件
【10月更文挑战第21天】组件化开发:创建可重用的Vue组件
154 1
|
JavaScript 前端开发
vue全局公共组件自动引入并注册,开发效率直接起飞!
【10月更文挑战第14天】vue全局公共组件自动引入并注册,开发效率直接起飞!
337 1
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
1769 0
|
存储 JSON JavaScript
Vue.js开发中基于localStorage与sessionStorage的本地存储利器:Vue-ls插件使用详解
Vue.js开发中基于localStorage与sessionStorage的本地存储利器:Vue-ls插件使用详解
542 0
|
设计模式 JavaScript 开发工具
Vue开发中使用好钩子方法(hook method)可以使你的代码更加模块化和可维护
Vue开发中使用好钩子方法(hook method)可以使你的代码更加模块化和可维护
162 0
|
JavaScript 算法 前端开发
在Vue开发中v-if指令和v-show指令的使用介绍,v-if和v-for的优先级以及使用注意事项的介绍
在Vue开发中v-if指令和v-show指令的使用介绍,v-if和v-for的优先级以及使用注意事项的介绍
404 0