最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue組件從開發(fā)到發(fā)布的實現(xiàn)步驟

 更新時間:2018年11月11日 10:30:04   作者:bestvist  
這篇文章主要介紹了vue組件從開發(fā)到發(fā)布的實現(xiàn)步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了vue組件從開發(fā)到發(fā)布的實現(xiàn)步驟,分享給大家,具體如下:

組件化是前端開發(fā)非常重要的一部分,從業(yè)務(wù)中解耦出來,可以提高項目的代碼復(fù)用率。更重要的是我們還可以打包發(fā)布,俗話說集體的力量是偉大的,正因為有許許多多的開源貢獻者,才有了現(xiàn)在的世界。

不想造輪子的工程師,當(dāng)不了合格的搬運工 。讓我們來了解一下vue組件從開發(fā)到打包發(fā)布流程,并配置Github主頁。

本文以 vue-clock2 組件為例,歡迎star _~~ 項目地址

  • 目標(biāo)框架:vue
  • 打包工具:webpack
  • 發(fā)布源:npm
  • 代碼托管:github

項目結(jié)構(gòu)

|-- node_modules
|-- src
| |-- index.js
| |-- vue-clock.vue
|-- docs
| |-- index.html
| |-- index.css
|-- dist
  1. src: 組件相關(guān)代碼。
  2. node_modules: 組件依賴包。
  3. docs: 說明文檔,組件簡單的可以單個頁面,也可以使用vuepress。
  4. dist: 打包后組件內(nèi)容,一般 package.json 的 main 入口指向這個文件夾里的文件。

組件開發(fā)

vue組件開發(fā)相對來講還是比較容易的,創(chuàng)建一個 vue-clock.vue 文件,組件的相關(guān)邏輯實現(xiàn)。

該組件主要實現(xiàn)一個基于 time 屬性輸入,顯示對應(yīng)時間的鐘表樣式。

  <div class="clock">
    <div class="clock-circle"></div>
    <div class="clock-hour" :style="{transform:hourRotate}"></div>
    <div class="clock-minute" :style="{transform:minuteRotate}"></div>
    <b class="hour" v-for="h in timeList" :key="h">
      <span>{{h}}</span>
    </b>
  </div>

通過元素畫出鐘表的樣式,基于 css3的transform 屬性旋轉(zhuǎn)出每個時間點。

因為鐘表的時針并不是直接跳到下一個點的,所以需要計算出不同分鐘時,時鐘指針的旋轉(zhuǎn)角度。

后續(xù)增加了不指定時間的情況,顯示當(dāng)前時間并每分鐘自動更新。

export default {
  data() {
    return {
      timeList: [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
      hourRotate: "rotatez(0deg)",
      minuteRotate: "rotatez(0deg)"
    };
  },
  props: ["time"],
  watch: {
    time() {
      this.show();
    }
  },
  methods: {
    show() {
      this.showTime();
      if (this._timer) clearInterval(this._timer);
      if (!this.time) {
        this._timer = setInterval(() => {
          this.showTime();
        }, 60 * 1000);
      }
    },
    showTime() {
      let times;
      if (this.time) {
        times = this.time.split(":");
      } else {
        const now = new Date();
        times = [now.getHours(), now.getMinutes()];
      }

      let hour = +times[0];
      hour = hour > 11 ? hour - 12 : hour;
      let minute = +times[1];
      let hourAngle = hour * 30 + minute * 6 / 360 * 30;
      let minuteAngle = minute * 6;
      this.hourRotate = `rotatez(${hourAngle}deg)`;
      this.minuteRotate = `rotatez(${minuteAngle}deg)`;
    }
  },
  mounted() {
    this.show();
  },
  destroyed() {
    if (this._timer) clearInterval(this._timer);
  }
};

還有一些鐘表的布局樣式,可以直接在項目里查看。vue-clock.vue

接著我們需要拋出組件,以便在項目中引入使用。

  // src/index.js
  import Clock from './vue-clock.vue';
  export default Clock;
  if (typeof window !== 'undefined' && window.Vue) {
    window.Vue.component('clock', Clock);
  }

這里,組件開發(fā)的部分已經(jīng)完成了,喝杯咖啡,check一下代碼,我們要把它打包發(fā)布到npm上。

打包發(fā)布

打包前確認(rèn)一下 webpack 的配置文件輸出。

 output: {
  path: path.resolve(__dirname, './dist'),
  publicPath: '/dist/',
  filename: 'vue-clock.min.js',
  library: 'Clock',
  libraryTarget: 'umd',
  umdNamedDefine: true
 }

打包組件文件到 dist 文件夾中。

npm run build

npm發(fā)布

配置package.json

{
 "name": "vue-clock2",
 "description": "Vue component with clock",
 "version": "1.1.2",
 "author": "bestvist",
 "keywords": [
  "vue",
  "component",
  "clock",
  "time"
 ],
 "main": "dist/vue-clock.min.js",
 "license": "MIT",
 "homepage": "https://bestvist.github.io/vue-clock2/"
}

登錄npm

如果使用淘寶鏡像的,需要先修正一下鏡像源。

npm config set registry https://registry.npmjs.org/
// 查看登錄人
npm whoami
// 登錄
npm login

// 發(fā)布
npm publish

如果看到類似信息,說明發(fā)布成功。

npm notice
+ vue-clock2@1.1.2

Github主頁

把項目上傳到github托管,配置一份基本 README.md 說明文檔。

因為組件已經(jīng)發(fā)布到npm上,所以可以配置幾個徽章在README中。

// npm 版本
[npm version](https://img.shields.io/npm/v/vue-clock2.svg)

// npm 下載量
[npm download](https://img.shields.io/npm/dt/vue-clock2.svg)

更多的徽章配置可以查看shields

接著描述一下組件的引入和使用方法:

安裝:

npm install vue-clock2

使用:

<template>
 <clock :time="time"></clock>
</template>

<script>
 import Clock from 'vue-clock2';
 export default {
  components: { Clock },
  data () {
   return {
     time: '10:40'
   }
  }
 }
</script>

更詳細(xì)的交互或是屬性說明就交給文檔來解決了。

在 github 項目上通過 settings 指定 GitHub Pages

組件文檔說明應(yīng)包括:

  • 組件引入方法
  • 組件使用方法
  • 一個簡單的例子
  • 組件屬性描述說明

總結(jié)

開發(fā) -> 發(fā)布 -> 托管

一個組件輪子的制作流程大致介紹完了,希望本文可以幫助到您。也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3中emits與attrs的區(qū)別分析

    Vue3中emits與attrs的區(qū)別分析

    這篇文章主要給大家介紹了關(guān)于Vue3中emits與attrs區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-10-10
  • axios請求頭設(shè)置常見Content-Type和對應(yīng)參數(shù)的處理方式

    axios請求頭設(shè)置常見Content-Type和對應(yīng)參數(shù)的處理方式

    這篇文章主要介紹了axios請求頭設(shè)置常見Content-Type和對應(yīng)參數(shù)的處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue3中props傳參方式詳解

    Vue3中props傳參方式詳解

    這篇文章主要為大家詳細(xì)介紹了Vue3中props傳參方式(多種數(shù)據(jù)類型傳參方式)的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Vue2 監(jiān)聽屬性改變watch的實例代碼

    Vue2 監(jiān)聽屬性改變watch的實例代碼

    今天小編就為大家分享一篇Vue2 監(jiān)聽屬性改變watch的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue中的文本空格占位符說明

    vue中的文本空格占位符說明

    這篇文章主要介紹了vue中的文本空格占位符說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue?Router中router.resolve方法使用實例

    Vue?Router中router.resolve方法使用實例

    這篇文章主要給大家介紹了關(guān)于Vue?Router中router.resolve方法使用的相關(guān)資料,router.resolve方法在前端路由庫中用于解析路由信息,接受路徑或路由對象,返回解析后的?URL、路由和位置對象,需要的朋友可以參考下
    2024-11-11
  • vue3中如何使用iframe嵌入vue2頁面

    vue3中如何使用iframe嵌入vue2頁面

    這篇文章主要介紹了vue3中如何使用iframe嵌入vue2頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 如何使用VUE+faceApi.js實現(xiàn)攝像頭拍攝人臉識別

    如何使用VUE+faceApi.js實現(xiàn)攝像頭拍攝人臉識別

    Face-api.js是一個JavaScript API,是基于tensorflow.js核心API 的人臉檢測和人臉識別的瀏覽器實現(xiàn),這篇文章主要給大家介紹了關(guān)于如何使用VUE+faceApi.js實現(xiàn)攝像頭拍攝人臉識別的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Vue?中的?computed?和?watch?的區(qū)別詳解

    Vue?中的?computed?和?watch?的區(qū)別詳解

    這篇文章主要介紹了Vue中的computed和watch的區(qū)別詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • vue.js實現(xiàn)仿原生ios時間選擇組件實例代碼

    vue.js實現(xiàn)仿原生ios時間選擇組件實例代碼

    本篇文章主要介紹了vue.js實現(xiàn)仿原生ios時間選擇組件實例代碼,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12

最新評論

新邵县| 任丘市| 牡丹江市| 七台河市| 遂川县| 汤阴县| 新密市| 天台县| 吉林省| 五大连池市| 定边县| 乐亭县| 贵定县| 虞城县| 颍上县| 澄城县| 南雄市| 万源市| 寿阳县| 丹棱县| 三明市| 中宁县| 西宁市| 迁安市| 龙南县| 资阳市| 黎城县| 肇东市| 六盘水市| 颍上县| 仲巴县| 高尔夫| 梓潼县| 深水埗区| 夏河县| 科技| 平果县| 喀喇沁旗| 红原县| 沐川县| 新宾|