


Comment créer une bibliothèque de composants Vue à partir de zéro et la publier sur npm
Comment créer une bibliothèque de composants Vue à partir de zéro et la publier sur npm ? L'article suivant vous guidera étape par étape dans le développement d'une bibliothèque de composants Vue à partir de zéro et verra comment la publier sur npm. J'espère qu'il vous sera utile.
1. Ouvrez le nouveau dossier dans le terminal et exécutez npm init -y
pour générer package.json comme suit. Notez que si vous souhaitez publier sur npm, le nom ne peut pas avoir de soulignements ni de majuscules. , etc.
{ "name": "vuecomponentdi", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
2 , Établir la structure des répertoires
La structure des répertoires est la suivante
-- vueComponentDi -- packages -- button -- index.js -- index.vue -- toast -- index.js -- index.vue -- index.js -- package.json
3.
export default function(){ console.log('本地调试') }
- Créer un nouveau projet vue
vue create testvue
- Sous testvue Les dépendances de test sous package.json ajoutent l'adresse absolue de vueComponentDi/index.js
"devDependencies": { ... "vuecomponentdi": "F:/vueComponent@Di/vueComponentDi",//根据自己实际项目地址填写 ... }
Exécuter le lien npm
- Exécuter le lien npm dans testvue vers le lien logiciel vuecomponentdi vers node_modules
vuecomponentdi install Eslint
- Depuis que testvue introduit les composants, la détection d'Eslint sera effectuée et une erreur sera signalée s'il n'est pas installé (testvue ferme Eslint pour omettre cette étape)
Utilisez vuecomponentdi dans testvuenpm install eslint@6.7.2 --save-dev ./node_modules/.bin/eslint --initCopier après la connexion
- import test depuis "vuecomponentdi"
<template> <div class="home"> <img alt="Vue logo" src="../assets/logo.png"> <HelloWorld msg="Welcome to Your Vue.js App"/> </div> </template> <script> // @ is an alias to /src import HelloWorld from '@/components/HelloWorld.vue' import test from "vuecomponentdi" export default { name: 'Home', components: { HelloWorld }, created(){ test() } } </script>
4 Développer un composant de bouton
.
- button模块:进入vueComponentDi/packages/button/index.vue
type只支持传入primary属性,v-on="listeners" 传入内部组件
<template> <div> <button class="di-button" v-on="$listeners" :class="[type?`di-button--${type}`:'']"><slot></slot></button> </div> </template> <script> export default { name:"di-button", props:{ type:String } } </script> <style> .di-button{ display: inline-block; line-height: 1; white-space: nowrap; cursor: pointer; background: #fff; border: 1px solid #dcdfe6; color: #606266; -webkit-appearance: none; text-align: center; box-sizing: border-box; outline: none; margin: 0; transition: .1s; font-weight: 500; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; padding: 12px 20px; font-size: 14px; border-radius: 4px; } .di-button:focus, .di-button:hover { color: #409eff; border-color: #c6e2ff; background-color: #ecf5ff; } .di-button:active { color: #3a8ee6; border-color: #3a8ee6; outline: none; } .di-button--primary { color: #fff; background-color: #409eff; border-color: #409eff; } .di-button--primary:focus, .di-button--primary:hover { background: #66b1ff; border-color: #66b1ff; color: #fff; } .di-button--primary.is-active, .di-button--primary:active { background: #3a8ee6; border-color: #3a8ee6; color: #fff; } </style>
- button模块导出:进入vueComponentDi/packages/button/index.js
如果导出一个带有install函数的对象,则在Vue2中可以直接使用Vue.use(xx)调用此函数,既执行 Vue.component(name,option)创建了一个组件
import button from "./index.vue" button.install=(Vue)=>{ Vue.component(button.name,button) } export default button
- 聚合导出button:进入vueComponentDi/index.js
因为开发的组件不止一个,所以需要在入口文件统一导出
import diButton from "./packages/button" export { diButton }
- 在testvue使用
<template> <div class="home"> <di-button type="primary">按钮</di-button> </div> </template> <script> // @ is an alias to /src import Vue from 'vue' import {diButton} from "vuecomponentdi" Vue.use(diButton) export default { name: 'Home' } </script>
5、开发一个toast弹窗
- toast模块:vueComponentDi/packages/toast/index.vue
type只支持warning和success
<template> <div class="di-toast" :class="`di-toast--${type}`" v-if="show"> {{message}} </div> </template> <script> export default { data(){ return { message:'', show:false, type:'' } } } </script> <style> .di-toast{ width: 60%; width: 200px; background: rgb(15, 15, 15); padding:3px; text-align: center; color: #fff; border-radius: 10px; position: fixed; left: calc(50% - 100px); top: 200px; } .di-toast--warning{ background: #FDF6EC; color: #E6A28B; } .di-toast--success{ background: #F0F9EB; color: #93C26D; } </style>
- toast模块导出:vueComponentDi/packages/toast/index.js
因为toast弹窗需要在vue中支持this.$toast调用,所以用了Vue.extend方法,这个 API 在日常开发中很少使用,一般在开发组件的时候它才能派上用场,官方定义:使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象
import toast from './index.vue' toast.install = (Vue) => { const toastConstructor = Vue.extend(toast);//使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。 let $vm = new toastConstructor();//将这个子类实例化 let $el = $vm.$mount().$el;//$vm执行$mount()手动挂载会返回一个带有$el的对象,$el就是一个dom对象 document.querySelector("body").appendChild($el);//将这个dom对象添加到body中 //在Vue原型上注入$toast方法 Vue.prototype.$toast = (option) => { $vm.show = true if (!(option instanceof Object)) { //如果传的不是对象直接弹出 $vm.message = option } else { $vm.message = option.message $vm.type = option.type } setTimeout(() => { $vm.show = false }, 2000) } } export default toast
- 聚合导出:vueComponentDi/index.js
import diButton from "./packages/button" import toast from "./packages/toast" export { diButton, toast }
- vuetest中使用toast
<template> <div class="home"> <di-button type="primary" @click="toast">按钮</di-button> </div> </template> <script> // @ is an alias to /src import Vue from "vue"; import { diButton, toast } from "vuecomponentdi"; Vue.use(diButton); Vue.use(toast); export default { name: "Home", methods: { toast() { // this.toast("这是一个普通弹窗"); // this.$toast({ // message: "这是一个成功弹窗", // type: "success", // }); this.$toast({ message: "这是一个警告弹窗", type: "warning", }); }, }, }; </script>
6、发布到npm
- 公有配置
组件开发完成需要发布到npm以便于别人使用;因为发布的是公有包,所以需要在vueComponentDi/package.json中配置
"publishConfig": { "access": "public" },
完整package.json:
{ "name": "vuecomponentdi", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "eslint": "^6.7.2", "eslint-plugin-vue": "^8.2.0" }, "publishConfig": { "access": "public" } }
- 发布
npm发布很简单,只需要两个命令:
npm login npm publish
执行npm login需要你有npm账号,可以到 npm官网 注册
npm官网地址:https://www.npmjs.com/
发布完成之后就可以在任何一个vue2项目中安装使用了:
npm install vuecomponentdi
git地址: vue组件开发(https://gitee.com/geeksdidi/vue-component-di)
【相关推荐:vue.js教程】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Communication entre composants Vue : utilisez $destroy pour la communication de destruction de composants Dans le développement de Vue, la communication entre composants est un aspect très important. Vue propose diverses façons d'implémenter la communication entre les composants, tels que les accessoires, l'émission, la vuex, etc. Cet article présentera une autre méthode de communication entre composants : utiliser $destroy pour la communication de destruction de composants. Dans Vue, chaque composant a un cycle de vie, qui comprend une série de fonctions hook de cycle de vie. La destruction de composants en fait également partie. Vue fournit un $de.

Avec le développement continu de la technologie front-end, Vue est devenu l'un des frameworks les plus populaires en matière de développement front-end. Dans Vue, les composants sont l'un des concepts de base, qui peuvent diviser les pages en parties plus petites et plus faciles à gérer, améliorant ainsi l'efficacité du développement et la réutilisabilité du code. Cet article se concentrera sur la façon dont Vue implémente la réutilisation et l'extension des composants. 1. Mixins de réutilisation des composants Vue Les mixins sont un moyen de partager les options de composants dans Vue. Les mixins permettent de combiner les options de composants de plusieurs composants en un seul objet pour un maximum

Vue Practical Combat : Développement de composants de sélecteur de dates Introduction : Le sélecteur de dates est un composant souvent utilisé dans le développement quotidien. Il peut facilement sélectionner des dates et fournit diverses options de configuration. Cet article expliquera comment utiliser le framework Vue pour développer un composant de sélecteur de date simple et fournira des exemples de code spécifiques. 1. Analyse des besoins Avant de commencer le développement, nous devons effectuer une analyse des besoins pour clarifier les fonctions et les caractéristiques des composants. Selon les fonctions communes des composants du sélecteur de date, nous devons implémenter les points de fonction suivants : Fonctions de base : capables de sélectionner des dates et

Communication des composants Vue : utilisation de la surveillance et du calcul pour la surveillance des données Vue.js est un framework JavaScript populaire, et son idée principale est la composantisation. Dans une application Vue, les données doivent être transférées et communiquées entre différents composants. Dans cet article, nous présenterons comment utiliser la montre et le calcul de Vue pour surveiller et répondre aux données. watch Dans Vue, watch est une option qui peut être utilisée pour surveiller les modifications dans une ou plusieurs propriétés.

Vue est un framework JavaScript populaire qui fournit une multitude d'outils et de fonctionnalités pour nous aider à créer des applications Web modernes. Bien que Vue elle-même fournisse déjà de nombreuses fonctions pratiques, nous pouvons parfois avoir besoin d'utiliser des bibliothèques tierces pour étendre les capacités de Vue. Cet article expliquera comment utiliser des bibliothèques tierces dans les projets Vue et fournira des exemples de code spécifiques. 1. Introduire des bibliothèques tierces La première étape pour utiliser des bibliothèques tierces dans un projet Vue est de les introduire. Nous pouvons le présenter des manières suivantes

Pour comprendre en profondeur le cycle de vie des composants de Vue, vous avez besoin d'exemples de code spécifiques Introduction : Vue.js est un framework JavaScript progressif privilégié par les développeurs pour sa simplicité, sa facilité d'apprentissage, son efficacité et sa flexibilité. Dans le développement de composants de Vue, la compréhension du cycle de vie des composants est un élément important. Cet article approfondira le cycle de vie des composants Vue et fournira des exemples de code spécifiques pour aider les lecteurs à mieux les comprendre et les appliquer. 1. Diagramme du cycle de vie des composants Vue Le cycle de vie des composants Vue peut être considéré comme un composant

Développement de composants Vue : méthode d'implémentation du composant Tab Dans les applications Web modernes, la page à onglet (Tab) est un composant d'interface utilisateur largement utilisé. Le composant Tab peut afficher plusieurs contenus associés sur une seule page et les changer en cliquant sur l'onglet. Dans cet article, nous présenterons comment utiliser Vue.js pour implémenter un composant d'onglet simple et fournirons des exemples de code détaillés. La structure du composant onglet Vue Le composant onglet se compose généralement de deux parties : Onglet et Panneau. Les étiquettes sont utilisées pour identifier les surfaces

Comment basculer entre plusieurs méthodes d'interaction de données dans les composants Vue Lors du développement de composants Vue, vous rencontrez souvent des scénarios dans lesquels vous devez passer à différentes méthodes d'interaction de données, telles que demander des données via des API, saisir des données via des formulaires ou transmettre des données en temps réel. via WebSocket, etc. Cet article présentera comment implémenter cette commutation de plusieurs méthodes d'interaction de données dans les composants Vue et fournira des exemples de code spécifiques. Méthode 1 : demande de données API Dans certains cas, nous devons demander des données via l'API pour obtenir des données de base. sous
