亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳細講解如何創建, 發布自己的 Vue UI 組件庫

2019-11-19 11:26:13
字體:
來源:轉載
供稿:網友

前言

在使用 Vue 進行日常開發時, 我們經常會用到一些開源的 UI 庫, 如: Element-UI_, _Vuetify 等.

只需一行命令, 即可方便的將這些庫引入我們當前的項目:

npm install vuetify// oryarn add vuetify

但是當我們自己開發了一個 _UI Component_, 需要在多個項目中使用的時候呢? 我們首先想到的可能是直接復制一份過去對嗎?

這樣做是很方便, 但是有兩個問題:

  • 當該 component 需要更新時, 我們需要手動維護所有用到該 component 的更新
  • 當有多個 component 需要共享時, 手動復制過于繁瑣

那么, 我們為什么不發布一個 UI 組件庫給自己用呢?

本文筆者將介紹如何一步步, 創建并發布自己的 Vue UI 組件庫.

初始化 project

這里我們使用官方的 vue-cli 初始化一個 Vue 項目

npm install -g @vue/cli# oryarn global add @vue/clivue create personal-component-set

進入我們新建的項目, 讓我們看看當前的項目文件:

接下來讓我們寫一個簡單的 _Vue component_. 這里我寫了一個簡單的頂欄控件, 用來展示: 頁面標題, 我的個人信息, github 源碼鏈接等信息.

代碼如下:

<template><v-toolbar><v-toolbar-side-icon @click="toMainPage()"></v-toolbar-side-icon><v-toolbar-title>Visual Explain</v-toolbar-title><v-spacer></v-spacer><v-toolbar-items class="hidden-sm-and-down"><v-btn flat @click="openMyGithub()"><v-avatar size=42><img src="https://avatars3.githubusercontent.com/u/10973821?s=460&v=4"></v-avatar><span style="margin-left:8px;">About me: ssthouse</span></v-btn><v-tooltip bottom><v-btn slot="activator" flat :href="sourceCodeLink" rel="external nofollow" ><v-avatar size=42><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png"></v-avatar>Source Code</v-btn><span class="top-bar-tooltip">Welcome to fork & star <br/> ; )</span></v-tooltip></v-toolbar-items></v-toolbar></template><script>export default {props: ['sourceCodeLink'],methods: {openMyGithub() {const a = document.createElement('a')a.target = '_blank'a.a.click()},toMainPage() {this.$emit('to-main-page')}}}</script><style scoped>.top-bar-tooltip {font-size: 18px;}a {color: black;}</style>

以上代碼構成了一個非常簡單的 Vue component_, 提供了一個 _props: sourceCodeLink 方便定制化跳轉鏈接, 提供了一個 _event: to-main-page_, 用于觸發用戶跳轉回主頁的回調.

效果如圖:

配置 project

下面我們來配置當前項目, 以使其可以發布到 npm 上.

首先我們編輯入口文件 src/components/index.js, 使其被作為 UI 庫導入時能自動在Vue中注冊我們的 Component:

import Vue from 'vue'import TopBar from './TopBar.vue'const Components = {TopBar}Object.keys(Components).forEach(name => {Vue.component(name, Components[name])})export default Components

接下來我們添加 build 項目的腳本到 package.json 的 scripts 中:

其中 --name libraryName 指定的是要發布的Library的名稱, 我們執行上面新加的腳本:

可以看到 build 生成了各種版本可以用于發布的js文件

這里我們選擇默認發布我們的 *.common.js 文件, 所以我們在 package.json中添加main屬性.

指定該屬性后, 當我們引用該組件庫時, 會默認加載 main 中指定的文件.

最后, 我們再配置 package.json中的 files屬性, 來配置我們想要發布到 npm 上的文件路徑.

我們這里將用戶引用我們的組件庫可能用到的所有文件都放進來:

npm 發布

首先我們注冊一個 npm 賬號 (如果已有賬號, 可以跳過此步驟)

npm add user// 按照提示輸入用戶名, 郵箱等即可

然后使用 npm login 登錄注冊號的狀態

登錄后可以使用 npm whoami 查看登錄狀態

在發布之前, 我們修改一下項目的名稱(注意不要和已有項目名稱沖突), 推薦使用 @username/projectName 的命名方式.

接下來我們就可以發布我們的 UI 組件庫了, 在發布之前我們再編譯一次, 讓build出的文件為我們最新的修改:

npm run build-bundle

我們使用下面的命令發布我們的項目:

npm publish --access public

需要注意的是 package.json中指定的version屬性: 每次要更新我們的組件庫都需要更新一下version(畢竟同一個version 的代碼不同,很容易讓人產生疑惑)

測試使用

這樣我們就完成了自己的 UI 組件庫的發布. 接下來我們可以在任何需要使用到該組件庫的項目中使用:

npm install --save @ssthouse/personal-component-set

然后在index文件 (如src/main.js) 中引入該組件庫:

import '@ssthouse/personal-component-set'

接下來我們就可以在 Vue的template中使用組件庫中的 Component了:

<template><v-app id="app"><top-bar :sourceCodeLink="sourceCodeLink"></top-bar><router-view/></v-app></template>

最后

經過上面這些步驟后, 我們就擁有了一個屬于自己的組件庫了. 我們可以隨時更新, 發布自己新版的組件庫.

而依賴了該組件庫的項目只需要使用簡單的 npm 命令即可更新 : )

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久躁日日躁aaaaxxxx| 欧美在线视频免费播放| 26uuu另类亚洲欧美日本老年| 色噜噜亚洲精品中文字幕| 亚洲区在线播放| 久久久久日韩精品久久久男男| 青青a在线精品免费观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产亚洲精品美女| 欧美精品videosex牲欧美| 日韩网站免费观看高清| 美女精品视频一区| 久久久人成影片一区二区三区观看| 91日本在线视频| 97av在线视频| 丝袜一区二区三区| 国产精品久久久久久久久久久久久| 国产福利成人在线| 久久国产精品久久久久久| 91成人精品网站| 国产精品7m视频| 国产成人精品亚洲精品| 日韩av免费在线观看| 色综合久综合久久综合久鬼88| 久久久久久尹人网香蕉| 亚洲欧美日韩国产中文| 亚洲欧美日韩精品久久亚洲区| 3344国产精品免费看| 97视频在线观看成人| 色偷偷噜噜噜亚洲男人| 69**夜色精品国产69乱| 亚洲欧美中文另类| 日韩在线免费高清视频| 国产精品美女主播| 成人免费福利在线| 中文字幕综合在线| 亚洲japanese制服美女| 亚洲视频第一页| 日韩欧美亚洲范冰冰与中字| 亚洲嫩模很污视频| 亚洲国产黄色片| 高潮白浆女日韩av免费看| 日韩天堂在线视频| 高跟丝袜一区二区三区| 国产日韩精品综合网站| 成人有码在线播放| 成人免费午夜电影| 亚洲美女精品久久| 91免费看片在线| www.日韩免费| 伊人久久久久久久久久| 亚洲国产欧美久久| 欧美国产日韩一区二区三区| 日韩电影免费观看中文字幕| 日韩精品在线私人| 国产精品亚发布| 精品人伦一区二区三区蜜桃网站| 午夜精品三级视频福利| www高清在线视频日韩欧美| 久久资源免费视频| 国产成人综合久久| 成人在线播放av| 成人伊人精品色xxxx视频| 国产999精品久久久| 欧美日韩在线视频首页| 久久亚洲精品网站| 久热精品视频在线免费观看| 69av在线视频| 亚洲在线一区二区| 欧美国产日韩一区二区在线观看| 国产精品成人v| 欧美国产日韩中文字幕在线| 亚洲国产福利在线| 久久久久久999| 欧美中文字幕在线观看| 成人av在线天堂| 日本道色综合久久影院| 欧美激情国产日韩精品一区18| 日韩中文在线中文网三级| 久久久久久久久久国产| 欧美日韩一区免费| 亚洲一区二区免费| 日韩美女在线观看一区| 欧美激情中文网| 国产精品第100页| 亚洲人成毛片在线播放| 久久影院资源网| 亚洲国产欧美自拍| 午夜精品久久久久久久99黑人| 中文字幕亚洲激情| 亚洲一区二区少妇| 色噜噜狠狠狠综合曰曰曰| 亚洲精品第一国产综合精品| 97精品伊人久久久大香线蕉| 91免费综合在线| 中文字幕欧美亚洲| 亚洲成人性视频| 国产精品www色诱视频| 97欧美精品一区二区三区| 国产精品1234| 按摩亚洲人久久| 在线观看国产精品日韩av| 中文字幕精品www乱入免费视频| 欧美电影免费看| 97精品国产97久久久久久免费| 久久中文字幕在线视频| 中文字幕av日韩| 亚洲欧美国产一本综合首页| 国产日韩av高清| 在线观看91久久久久久| 久久影院资源网| 亚洲第一中文字幕在线观看| 国产成+人+综合+亚洲欧美丁香花| 一区二区成人av| 国产精品视频自在线| 国产美女久久精品| 国产性猛交xxxx免费看久久| 欧洲亚洲妇女av| 亚洲午夜小视频| 亚洲在线观看视频| 高清在线视频日韩欧美| 黑人精品xxx一区一二区| 欧美日韩亚洲天堂| 久久久国产一区二区三区| 国产精品久久久久久久电影| 国内精品模特av私拍在线观看| 九色精品免费永久在线| 欧美在线国产精品| 国产日韩欧美视频| 国产一区二区香蕉| 久久精品国产96久久久香蕉| 日韩欧美成人免费视频| 中文日韩在线视频| 中文字幕日韩av| 国产成人免费av| 国产精品第1页| 国产精品视频成人| 欧美日韩国产va另类| 中文一区二区视频| 欧美亚洲国产精品| 日韩av免费在线| 亚洲精品mp4| 亚洲精品理论电影| 美女精品久久久| 亚洲午夜精品久久久久久性色| 亚洲深夜福利视频| 国产日韩在线一区| 亚洲电影在线观看| 欧美成人黑人xx视频免费观看| 69久久夜色精品国产69| 欧美激情xxxx| 久久精品青青大伊人av| 精品成人久久av| xxxxxxxxx欧美| 成人妇女免费播放久久久| 亚洲精品成人久久久| 一区二区三区回区在观看免费视频| 久久成人一区二区| 国产不卡精品视男人的天堂| 日韩久久午夜影院| 欧美日韩成人网| 亚洲成人国产精品| 在线看福利67194| 欧美激情亚洲视频|