


Cara membuat perpustakaan komponen Vue dari awal dan menerbitkannya ke npm
Bagaimana untuk mencipta perpustakaan komponen Vue dari awal dan menerbitkannya ke npm? Artikel berikut akan membimbing anda langkah demi langkah dalam membangunkan pustaka komponen Vue dari awal dan melihat cara untuk menerbitkannya ke npm saya harap ia akan membantu anda.
1 Cipta folder baharu, buka dalam terminal dan laksanakan npm init -y
Jana pakej .json adalah seperti berikut. Ambil perhatian bahawa jika anda ingin menerbitkan ke npm, nama itu tidak boleh mempunyai garis bawah, huruf besar, dsb.
{ "name": "vuecomponentdi", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
2. Wujudkan struktur direktori
Struktur direktori adalah seperti berikut
-- vueComponentDi -- packages -- button -- index.js -- index.vue -- toast -- index.js -- index.vue -- index.js -- package.json
3 🎜>
- vueComponentDi/index .js
export default function(){ console.log('本地调试') }
- Buat projek vue baharu
vue create testvue
Tambah vueComponentDi pada devDependency pergantungan ujian di bawah package.json di bawah alamat mutlak testvue /index.js
"devDependencies": { ... "vuecomponentdi": "F:/vueComponent@Di/vueComponentDi",//根据自己实际项目地址填写 ... }
- Laksanakan pautan npm
Laksanakan pautan npm dalam testvue ke pautan lembut vuecomponentdi ke dalam node_modules
- vuecomponentdi memasang Eslint
Memandangkan testvue akan memperkenalkan komponen, Eslint akan memperkenalkan pengesanan dilakukan dan ralat akan dilaporkan jika ia tidak dipasang (testvue boleh meninggalkan langkah ini dengan mematikan Eslint)Kaedah pemasangan:
npm install eslint@6.7.2 --save-dev ./node_modules/.bin/eslint --init
- Gunakan vuecomponentdi dalam testvue
ujian import daripada "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 . Bangunkan komponen butang
- 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教程】
Atas ialah kandungan terperinci Cara membuat perpustakaan komponen Vue dari awal dan menerbitkannya ke npm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dengan pembangunan berterusan teknologi bahagian hadapan, Vue telah menjadi salah satu rangka kerja yang popular dalam pembangunan bahagian hadapan. Dalam Vue, komponen ialah salah satu konsep teras, yang boleh memecahkan halaman kepada bahagian yang lebih kecil dan lebih mudah diurus, dengan itu meningkatkan kecekapan pembangunan dan kebolehgunaan semula kod. Artikel ini akan menumpukan pada cara Vue melaksanakan penggunaan semula dan sambungan komponen. 1. Campuran guna semula komponen Vue Mixins ialah cara untuk berkongsi pilihan komponen dalam Vue. Mixin membenarkan pilihan komponen daripada berbilang komponen digabungkan menjadi satu objek untuk maksimum

Komunikasi komponen Vue: Gunakan $destroy untuk komunikasi pemusnahan komponen Dalam pembangunan Vue, komunikasi komponen merupakan aspek yang sangat penting. Vue menyediakan pelbagai cara untuk melaksanakan komunikasi komponen, seperti props, emit, vuex, dsb. Artikel ini akan memperkenalkan satu lagi kaedah komunikasi komponen: menggunakan $destroy untuk komunikasi pemusnahan komponen. Dalam Vue, setiap komponen mempunyai kitaran hayat, yang merangkumi satu siri fungsi cangkuk kitaran hayat. Pemusnahan komponen juga merupakan salah satu daripadanya Vue menyediakan $de

Pertempuran Praktikal Vue: Pembangunan Komponen Pemilih Tarikh Pengenalan: Pemilih tarikh ialah komponen yang sering digunakan dalam pembangunan harian Ia boleh memilih tarikh dengan mudah dan menyediakan pelbagai pilihan konfigurasi. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Vue untuk membangunkan komponen pemilih tarikh yang mudah dan menyediakan contoh kod khusus. 1. Analisis keperluan Sebelum memulakan pembangunan, kita perlu menjalankan analisis keperluan untuk menjelaskan fungsi dan ciri-ciri komponen. Menurut fungsi komponen pemilih tarikh biasa, kita perlu melaksanakan titik fungsi berikut: Fungsi asas: dapat memilih tarikh, dan

Komunikasi komponen Vue: menggunakan jam tangan dan dikira untuk pemantauan data Vue.js ialah rangka kerja JavaScript yang popular dan idea terasnya ialah komponenisasi. Dalam aplikasi Vue, data perlu dipindahkan dan disampaikan antara komponen yang berbeza. Dalam artikel ini, kami akan memperkenalkan cara menggunakan jam tangan Vue dan dikira untuk memantau dan bertindak balas kepada data. watch Dalam Vue, jam tangan ialah pilihan yang boleh digunakan untuk memantau perubahan dalam satu atau lebih sifat.

Vue ialah rangka kerja JavaScript popular yang menyediakan pelbagai alatan dan ciri untuk membantu kami membina aplikasi web moden. Walaupun Vue sendiri sudah menyediakan banyak fungsi praktikal, kadangkala kita mungkin perlu menggunakan perpustakaan pihak ketiga untuk memperluaskan keupayaan Vue. Artikel ini akan memperkenalkan cara menggunakan perpustakaan pihak ketiga dalam projek Vue dan memberikan contoh kod khusus. 1. Memperkenalkan perpustakaan pihak ketiga Langkah pertama untuk menggunakan perpustakaan pihak ketiga dalam projek Vue ialah memperkenalkannya. Kita boleh memperkenalkannya dengan cara berikut

Untuk memahami dengan mendalam kitaran hayat komponen Vue, anda memerlukan contoh kod khusus Pengenalan: Vue.js ialah rangka kerja JavaScript progresif yang digemari oleh pembangun kerana kesederhanaan, kemudahan pembelajaran, kecekapan dan fleksibiliti. Dalam pembangunan komponen Vue, memahami kitaran hayat komponen adalah bahagian penting. Artikel ini akan menyelidiki kitaran hayat komponen Vue dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menerapkannya dengan lebih baik. 1. Gambar rajah kitaran hayat komponen Vue Kitaran hayat komponen Vue boleh dianggap sebagai komponen

Cara menukar antara kaedah interaksi data berbilang dalam komponen Vue Apabila membangunkan komponen Vue, anda sering menghadapi senario di mana anda perlu menukar kepada kaedah interaksi data yang berbeza, seperti meminta data melalui API, memasukkan data melalui borang atau menolak data dalam masa nyata. melalui WebSocket, dsb. Artikel ini akan memperkenalkan cara melaksanakan penukaran kaedah interaksi data berbilang dalam komponen Vue dan memberikan contoh kod khusus. Kaedah 1: Data permintaan API Dalam sesetengah kes, kami perlu meminta data melalui API untuk mendapatkan data latar belakang. bawah

Dalam pembangunan Vue, kita sering menghadapi situasi di mana kita berurusan dengan struktur data dan algoritma yang kompleks. Masalah ini mungkin melibatkan sejumlah besar operasi data, penyegerakan data, pengoptimuman prestasi, dsb. Artikel ini akan memperkenalkan beberapa pertimbangan dan teknik untuk menangani struktur data dan algoritma yang kompleks untuk membantu pembangun menangani cabaran ini dengan lebih baik. 1. Pemilihan struktur data Apabila berurusan dengan struktur data dan algoritma yang kompleks, adalah sangat penting untuk memilih struktur data yang sesuai. Vue menyediakan banyak struktur dan kaedah data, dan pembangun boleh memilih struktur data yang sesuai mengikut keperluan sebenar. nombor yang biasa digunakan
