你可能會(huì)用的上的一個(gè)vue功能組件庫,持續(xù)完善中...

日常開發(fā)使用組件庫一般都能滿足大部分的需求肌毅,不過有些功能組件可能庫里并沒有筷转,這里開源一些特定項(xiàng)目可能會(huì)使用到的組件姑原,希望可以幫助到大家~

快速上手

  • 安裝
npm i vue-gn-components
  • 引入
整體引入:
import VueGnComponents from "vue-gn-components";
import "vue-gn-components/lib/style/index.css";
Vue.use(VueGnComponents)

按需引入:
import { CheckIn, watermark } from "vue-gn-components";
import "vue-gn-components/lib/style/index.css";
Vue.use(CheckIn).use(watermark)

→源碼所在地←

組件介紹

一、放大鏡 (Magnifier)

image
  • 組件安裝:
import { Magnifier } from 'vue-gn-components';
Vue.use(Magnifier)
  • 組件亮點(diǎn):

無論組件的dom位置在頁面何方呜舒,會(huì)準(zhǔn)確計(jì)算鼠標(biāo)位置以及自動(dòng)在右側(cè)懸浮一個(gè)查看區(qū)域锭汛,并且當(dāng)右側(cè)位置超過邊界后,查看區(qū)域會(huì)自動(dòng)出現(xiàn)在左邊袭蝗。

  • 組件調(diào)用:
<magnifier
  :boxSize="400"
  :minImgUrl="require('./img/min.jpg')"
  :maxImgUrl="require('./img/max.jpg')"
></magnifier>
  • 參數(shù):

boxSize: 設(shè)置放大鏡主體框的大小唤殴,會(huì)自動(dòng)在右側(cè)生成一個(gè)與之同樣大小的查看放大圖像的懸浮框,默認(rèn)500到腥。

minImgUrl: 放大鏡小圖的url朵逝。

maxImgUrl: 放大鏡大圖的url

autoReverse: 是否開啟右側(cè)距離超過邊界時(shí)乡范,懸浮框自適應(yīng)在左側(cè)配名。默認(rèn)true啤咽。

direction: 懸浮框的方向,默認(rèn)right右側(cè)渠脉∮钫可選left

二芋膘、簽到 (CheckIn)

image
  • 組件安裝:
import { CheckIn } from 'vue-gn-components';
Vue.use(CheckIn)
  • 組件亮點(diǎn):

實(shí)現(xiàn)了功能鳞青。會(huì)將傳入的一維數(shù)組的日期集合,按年月格式化為對(duì)象为朋,在渲染某個(gè)月時(shí)臂拓,只會(huì)渲染對(duì)應(yīng)當(dāng)月的簽到天數(shù),數(shù)組擁有海量數(shù)據(jù)也不會(huì)大量渲染习寸。

組件調(diào)用:

<template>
  <check-in :checkIns="checkIns" />
</template>

export default {
  return {
    checkIns: ['2019-12-15', '2019.12.18', 1576250061182]
  }
}
  • 參數(shù):

checkIns: 傳入一個(gè)簽到日期的一維數(shù)組集合埃儿,可以是時(shí)間戳、2019-11-11融涣、2019.11.11格式童番。

size: 簽到組件的整體大小,默認(rèn)500威鹿,大小自適應(yīng)剃斧。

三、圖片標(biāo)簽 (ImgLabel)

image
  • 組件安裝:
import { ImgLabel } from 'vue-gn-components';
Vue.use(ImgLabel)
  • 組件亮點(diǎn):

實(shí)現(xiàn)了功能忽你。右擊創(chuàng)建標(biāo)簽幼东,雙擊編輯標(biāo)簽,可以單個(gè)移除科雳,也可以全部清除根蟹,保存到本地緩存,導(dǎo)出為圖片糟秘。

  • 組件調(diào)用:
<img-label :src="require('./img/timg.jpg')"></img-label>
  • 參數(shù):

isShowSaveBtn: 是否顯示保存按鈕简逮,默認(rèn)true,會(huì)將標(biāo)簽數(shù)據(jù)保存到本地緩存尿赚。

src: 需要添加標(biāo)簽圖片的url散庶。

width:圖片的寬,默認(rèn)500凌净。

theme: 主題色悲龟,默認(rèn)#3b8bcc

四冰寻、滑動(dòng)驗(yàn)證(SlideCheck)

image
  • 組件安裝:
import { SlideCheck } from 'vue-gn-components';
Vue.use(SlideCheck)
  • 組件亮點(diǎn):

仿某電商的注冊驗(yàn)證须教,不過使用純canvas進(jìn)行繪制,包括摳出來的拼圖以及圖片的渲染斩芭。而且在驗(yàn)證成功派發(fā)的事件里會(huì)記錄用戶滑動(dòng)過程中上下分別抖動(dòng)的最大距離轻腺。(可能機(jī)器是不會(huì)抖的羹奉,增加了一點(diǎn)點(diǎn)的安全性)

  • 組件調(diào)用:
<slide-check 
  :width="300" 
  :height="300" 
  :src="src" 
  @success="success" 
  @fail="fail">
</slide-check>

export default {
  data() {
    src: [
      require("./img/timg.jpg"),
      require("./img/min.jpg")
    ]
  }
}
  • 參數(shù):

radius: 拼圖突出圓心的半徑值,也就是繪制的拼圖的大小约计,默認(rèn)10诀拭。

src: 單個(gè)url或多個(gè)url數(shù)組的集合,當(dāng)為多個(gè)時(shí)煤蚌,驗(yàn)證失敗或成功都會(huì)隨機(jī)選擇另外一張圖片耕挨。

width: 驗(yàn)證區(qū)域的寬,是canvas容器的width尉桩。

height: 驗(yàn)證區(qū)域的高筒占。

theme: 主題色,默認(rèn)#369蜘犁。

  • 事件:

success: 驗(yàn)證成功的回調(diào)翰苫,會(huì)派發(fā)一個(gè)對(duì)象出來,分別為上下波動(dòng)的最大值这橙。

fail: 驗(yàn)證沒通過的回調(diào)奏窑。

五、倒計(jì)時(shí)(Countdown)

image
  • 組件安裝:
import { Countdown } from 'vue-gn-components';
Vue.use(Countdown)
  • 組件亮點(diǎn):

兩種模式屈扎,一種是傳入時(shí)間戳或2022-5-12-17-202022.5.12.17.20這樣大于當(dāng)前時(shí)間的格式埃唯。另一種是傳入60這樣的秒數(shù),開始倒數(shù)之后刷新頁面不會(huì)重新計(jì)時(shí)鹰晨。沒有做任何css的美化墨叛,只使用作用域插槽派發(fā)出對(duì)應(yīng)的值。

  • 組件使用:
<template>
<div>
  <countdown :time="date">
    <template v-slot="{date}">
      {{date.year}}年-{{date.month}}月-{{date.date}}日-{{date.hours}}小時(shí)-{{date.minutes}}分鐘-{{date.seconds}}秒
    </template>
  </countdown>
  <countdown isSMSMode :totalTime="timeLeft">
    <template v-slot="{date}">{{date.timeLeft}}秒</template>
  </countdown>
</div>
</template>

export default {
  data() {
    return {
      date: "2022.11.11",
      timeLeft: 60
    };
  }
  • 參數(shù):

time: 傳入大于當(dāng)前時(shí)間的時(shí)間格式模蜡。

isSMSMode: 是否秒數(shù)倒數(shù)模式漠趁,默認(rèn)false

totalTime: 倒數(shù)模式的最大秒數(shù)忍疾。

  • 作用域插槽

year: 年;

month: 月;

date: 日;

hours: 小時(shí);

minutes: 分鐘;

seconds: 秒鐘;

timeLeft: 倒數(shù)剩余秒數(shù).

  • 事件:

end:倒計(jì)時(shí)結(jié)束闯传。

  • 方法:

start:開始。

pause:暫停膝昆。

六丸边、水印(watermark)

image
  • 組件安裝:
import { watermark } from 'vue-gn-components';
Vue.use(watermark)
  • 指令亮點(diǎn):

采用自定義指令形式,會(huì)將指令作用在img上的標(biāo)簽最終替換為canvas標(biāo)簽荚孵。使用離屏canvas進(jìn)行繪制,一個(gè)繪制圖像纬朝,另一個(gè)繪制水印收叶,最終合并為一個(gè)canvas標(biāo)簽。

  • 指令調(diào)用:
<template>
  <div>
    <img v-watermark="{src: src, text: 'hello world'}"/>
  </div>
</template>

export default {
  data() {
    return {
      src: require("./img/min.jpg")
    };
  }
}
  • 指令參數(shù):

src: 圖片的url共苛。

text: 水印的文字判没。

opacity: 水印的透明度蜓萄,默認(rèn)0.3

rotate: 旋轉(zhuǎn)角度澄峰,默認(rèn)20嫉沽。

fontSize: 水印字體大小,默認(rèn)20俏竞。

type: 水印繪制的方式绸硕,默認(rèn)是repeat全屏重復(fù)繪制。只繪制一條水印時(shí)魂毁,可選left-top左上玻佩,right-top右上,right-bottom右小席楚,left-bottom左下咬崔。

七、拖拽組件(DragWrap/DragItem)

image
  • 組件安裝:
import { DragWrap, DragItem } from 'vue-gn-components';
Vue.use(DragWrap).use(DragItem)
  • 組件亮點(diǎn):

拖拽的具體內(nèi)容用戶完全可以自己編寫烦秩,也可以自己編寫拖拽的控制點(diǎn)垮斯。

  • 組件調(diào)用:
<template>
  <drag-wrap class="wrap" :data="list" @watchData="watchData">
    <drag-item class="item" v-for="(item, index) in list" :key="index">
      <template #drag>
        <div>拖拽Dom</div>
      </template>
      <div>{{item}}</div>
    </drag-item>
  </drag-wrap>
</template>

export default {
  data() {
    return {
      list: [111, 222, 333, 444, 555, 666, 777, 888, 999]
    };
  },
  methods: {
    watchData(newList) {
      console.log("newList", newList);
    }
  }
}
  • 參數(shù):

data:數(shù)組格式,Dom有對(duì)應(yīng)的渲染數(shù)組只祠,當(dāng)Dom位置變了之后甚脉,數(shù)組也會(huì)發(fā)生變化,傳遞給組件內(nèi)铆农,改變后組件派發(fā)出來牺氨。

  • 事件:

watchData:會(huì)將改變的數(shù)組派發(fā)出來,監(jiān)聽這個(gè)方法接收墩剖。

  • 插槽:

drag:用戶自己定義拖拽的控制點(diǎn)猴凹,沒有時(shí)拖拽Dom項(xiàng)任意任意位置都可以。

八岭皂、找茬組件(FindDiff)

image
  • 組件安裝:
import { FindDiff } from 'vue-gn-components';
Vue.use(FindDiff)
  • 組件亮點(diǎn):

'輔助'完成大家來找茬游戲郊霎。

  • 組件調(diào)用:
<template>
  <find-diff/>
</template>

更多

更多的組件后續(xù)會(huì)持續(xù)添加以及優(yōu)化,歡迎pr各種你使用到功能組件爷绘。源碼地址 vue-gn-components书劝,如果對(duì)你有幫助,還請給個(gè)Star了土至,這也是我持續(xù)完善這個(gè)項(xiàng)目购对,持續(xù)的動(dòng)力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陶因,一起剝皮案震驚了整個(gè)濱河市骡苞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖解幽,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贴见,死亡現(xiàn)場離奇詭異,居然都是意外死亡躲株,警方通過查閱死者的電腦和手機(jī)片部,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霜定,“玉大人档悠,你說我怎么就攤上這事∪槐” “怎么了站粟?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長曾雕。 經(jīng)常有香客問我奴烙,道長,這世上最難降的妖魔是什么剖张? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任切诀,我火速辦了婚禮,結(jié)果婚禮上搔弄,老公的妹妹穿的比我還像新娘幅虑。我一直安慰自己,他們只是感情好顾犹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布倒庵。 她就那樣靜靜地躺著,像睡著了一般炫刷。 火紅的嫁衣襯著肌膚如雪擎宝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天浑玛,我揣著相機(jī)與錄音绍申,去河邊找鬼。 笑死顾彰,一個(gè)胖子當(dāng)著我的面吹牛极阅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涨享,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼筋搏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了灰伟?” 一聲冷哼從身側(cè)響起拆又,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤儒旬,失蹤者是張志新(化名)和其女友劉穎栏账,沒想到半個(gè)月后帖族,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挡爵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年竖般,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茶鹃。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涣雕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闭翩,到底是詐尸還是另有隱情挣郭,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布疗韵,位于F島的核電站兑障,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蕉汪。R本人自食惡果不足惜流译,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望者疤。 院中可真熱鬧福澡,春花似錦、人聲如沸驹马。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糯累。三九已至算利,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寇蚊,已是汗流浹背笔时。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仗岸,地道東北人允耿。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像扒怖,于是被迫代替她去往敵國和親较锡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 其實(shí)接到這個(gè)思維角度的時(shí)候盗痒,我的內(nèi)心是崩潰的:你妹啊蚂蕴,我的人生格言是“踐行低散、踐行再踐行”,你給我讓我給拖延癥說好話...
    鳴沙石丨寫作群招人閱讀 1,457評(píng)論 4 3
  • 浪起微瀾之卷 【第一章】空山新雨 雨過初晴的山道上泥濘不堪骡楼,細(xì)小的水洼隨處可見熔号,一片落葉浮在水上,好似壺中...
    踏歌涉川閱讀 580評(píng)論 0 1
  • 蘇東坡曾謂讀賈島詩如食小魚鸟整,“所得不償勞”引镊,我小時(shí)吃石榴,覺得吃得一嘴籽兒篮条,而吮不出多少味道弟头,真是“所得不償勞”,...
    一個(gè)人的清歡閱讀 239評(píng)論 0 1
  • 十點(diǎn)半了涉茧,會(huì)議室的燈依舊亮著赴恨,八點(diǎn)半的會(huì)議硬生生的開到了現(xiàn)在,領(lǐng)導(dǎo)依舊滔滔不絕伴栓,似有泄洪之勢伦连,其間涉及到的內(nèi)容已經(jīng)...
    往生凈土閱讀 66評(píng)論 0 1
  • 再不改變自己真的會(huì)瘋。是自己太在乎孩子了挣饥,才會(huì)如驚弓之鳥除师,害怕這樣,害怕那樣扔枫。其根源是對(duì)自己的出自信汛聚。放松自己心情...
    小笨豬520閱讀 154評(píng)論 0 0